我正在将一些数据从我的控制器传递到视图,我希望将其显示在该视图内的部分视图中(不要问,这很复杂)。我知道我可能甚至不应该将模型传递给另一个视图的视图,但我注意到部分视图实际上是从父视图继承模型:
public ActionResult Index(){
Person p = new Person
{
FName = "Mo",
LName = "Sep"
};
return View(p);
}
然后在我的里面Index
查看我有:
<h2>Index</h2>
@Html.Partial("_IndexPartial")
和里面_IndexPartial
I have:
@Model.FName
并打印“Mo”。
此行为是否类似于 WPF 中的子控件继承其父视图的数据上下文?在您的应用程序中使用它是否被认为是不好的做法?
Thanks.
这种行为是否像 WPF 中子控件那样
继承父View的数据上下文?
Yes.
我看到您当前没有将任何模型传递给
是否可以只继承布局,然后根本不需要使用部分?
如果您想像现在一样继续使用它,也许只需更明确地说明它,并将当前模型传递给部分即可。
@Html.Partial("_IndexPartial", Model)
如果您查看 Html.Partial(view) 的源代码:
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName)
{
return Partial(htmlHelper, partialViewName, null /* model */, htmlHelper.ViewData);
}
它通过 htmlHelper.ViewData 传递模型,您可以使用 @{ViewData.Model} 在视图中以相同的方式访问模型,但这是NOT一个很好的做法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)