将viewbag传递给动作控制器的局部视图
我有一个带有局部视图的mvc视图。控制器中有一个ActionResult方法,它将返回一个PartialView。 所以,我需要从该ActionResult方法传递ViewBag数据到Partial View。
这是我的控制器
public class PropertyController : BaseController
{
public ActionResult Index()
{
return View();
}
public ActionResult Step1()
{
ViewBag.Hello = "Hello";
return PartialView();
}
}
在Index.cshtml查看
@Html.Partial("Step1")
Step1.cshtml部分视图
@ViewBag.Hello
但是这不起作用。 那么,从viewbag获取数据的正确方法是什么? 我认为我在跟错方法。 请指导我。
“子动作遵循与父动作不同的控制器/模型/视图生命周期,因此它们不共享ViewData / ViewBag。”
答案提供了一种传递数据的替代方法。
儿童动作是否与其“父母”动作共享相同的ViewBag?
你可以使用它如下所述:
在你的View中:
@Html.Partial("[ViewName]", (string)ViewBag.Message)
和你的部分观点:
@model String
<b>@Model</b>
如上所示,ViewBag.Message将被传递给局部视图。 并在你的部分视图中,你可以使用它作为@Model 。
注意:这里的ViewBag.Message类型是字符串 。 你可以通过任何类型。
如果您不必使用ViewBag,则可以使用TempData。 TempData是整个执行链共享的。
public class PropertyController : BaseController
{
public ActionResult Index()
{
return View();
}
public ActionResult Step1()
{
TempData["Hello"] = "Hello";
return PartialView();
}
}
在Index.cshtml查看
@Html.Partial("Step1")
Step1.cshtml部分视图
@TempData["Hello"]
链接地址: http://www.djcxy.com/p/42097.html