Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在布局页面中返回viewmodel?_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在布局页面中返回viewmodel?

Asp.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

My
\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
}

六星选项在哪里?很好!