簡體   English   中英

如何將viewData從局部視圖傳遞回控制器?

[英]How to pass viewData back to the controller from partial view?

我有一個使用幾個局部視圖的主視圖。 這些部分中的每一個都使用不同的模型並具有后期操作。 我的問題是我需要主視圖模型中的一個屬性才能在我的局部視圖中使用。

我需要通過此屬性視圖的局部視圖是該過程的最后階段。 應用程序到達包含switch語句的局部視圖,該局部視圖根據要查詢的項目的狀態決定要呈現的局部。

我已經傳遞了那么遠的屬性,甚至將它包含在Partial的Renderaction中,但是我不知道如何在控制器PartialViewResult中檢索它。

在主視圖中:

@{Html.RenderPartial("StatusForm", Model.HeadingDataModel.Status, new ViewDataDictionary { { "PurchaseOrderNumber", Model.AccordionModel.LtsSpecific.PurchaseOrderNumber } });}

PurchaseOrderNumber是我需要的。 該值將傳遞到下一階段:

@{
   var obj = ViewData["PurchaseOrderNumber"];  
 }

並在同一視圖中:

Html.RenderAction("FinishedCalibrationForm", obj);

我該如何在我的控制器中檢索? 我知道以下錯誤是正確的,但是您明白了。

public PartialViewResult FinishedCalibrationForm( string obj)

感謝所有幫助。

調用Html.RenderActionHtml.ActionUrl.Action大致相同。 有很多不同的重載,但是從本質上講,第一個參數是動作名稱,第二個參數將是控制器名稱或路由值的匿名對象,第三個參數將是路由值的匿名對象, 如果第二個參數用作控制器名稱

無論如何,無論您在路由值中傳遞什么,都將用於查找和調用關聯的動作,其中包括該動作的參數。 因此,以您的示例為例:

Html.RenderAction("FinishedCalibrationForm", new { obj = obj })

可以將obj正確地傳遞到您的操作方法中。 像現在一樣,它將obj的值解釋為動作所在的控制器名稱,這顯然是不正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM