我有一个使用多个部分视图的主视图。 这些部分中的每一个都使用不同的模型并具有后期动作。 我的问题是我需要在我的主视图模型中使用一个属性才能在我的部分模型中使用。
我需要传递此属性视图的部分视图是该过程的最后一个阶段。 应用程序到达包含switch语句的局部视图,根据要查询的项目的状态,决定将呈现哪个部分。
我将属性传递到目前为止,甚至将它包含在部分的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)
感谢所有帮助。
答案 0 :(得分:1)
致电Html.RenderAction
或Html.Action
与Url.Action
大致相同。有许多不同的重载,但实际上,第一个参数是动作名称,第二个参数将是控制器名称或路由值的匿名对象,第三个参数将是路由的匿名对象值如果第二个参数用于控制器名称。
无论如何,无论您在路线值中传递什么,都将用于查找和调用相关操作,其中包括操作的参数。所以,举个例子:
Html.RenderAction("FinishedCalibrationForm", new { obj = obj })
将obj
正确传递到您的操作方法中。正如您现在所做的那样,它会将obj
的值解释为操作所在的控制器名称,这显然是不正确的。