Asp.net mvc 如何在布局页面中返回viewmodel?
MyAsp.net mvc 如何在布局页面中返回viewmodel?,asp.net-mvc,Asp.net Mvc,My\u Layout.cshtml包含 Html.Action("GetCartList", "Shared"); ShoppingCartViewModel scvm = (ShoppingCartViewModel)ViewData["ShoppingCartViewModel"]; 我的控制器 [ChildActionOnly] public ShoppingCartViewModel GetCartList() { var results = new ShoppingCa
\u Layout.cshtml
包含
Html.Action("GetCartList", "Shared");
ShoppingCartViewModel scvm = (ShoppingCartViewModel)ViewData["ShoppingCartViewModel"];
我的控制器
[ChildActionOnly]
public ShoppingCartViewModel GetCartList()
{
var results = new ShoppingCartViewModel
{
Message = "",
SomeOtherProperty = "Other"
};
ViewData["ShoppingCartViewModel"] = results;
return results;
}
问题是为什么scvm
总是空的?
当控制器“被击中”时,这些值将成功加载到ViewData[“ShoppingCartViewModel”]
我希望我能做点像
ShoppingCartViewModel scvm = Html.Action("GetCartList", "Shared");
在子操作中,将ViewData设置为您的
ParentActionViewContext
[ChildActionOnly]
public void GetCartList()
{
var results = new ShoppingCartViewModel
{
Message = "",
SomeOtherProperty = "Other"
};
ControllerContext.ParentActionViewContext.ViewData["ShoppingCartViewModel"]=results;
}
在你的布局中
@Html.Action("GetCartList", "Home");
@{
var scvm = (ShoppingCartViewModel) ViewContext.ViewData["ShoppingCartViewModel"];
<div> @scvm.SomeOtherProperty </div>
}
@Html.Action(“GetCartList”、“Home”);
@{
var scvm=(ShoppingCartViewModel)ViewContext.ViewData[“ShoppingCartViewModel”];
@scvm.SomeOtherProperty
}
六星选项在哪里?很好!