加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC中,部分视图是否继承了父视图的模型?

发布时间:2020-12-16 06:25:45 所属栏目:asp.Net 来源:网络整理
导读:我将一些数据传递给我的控制器中的View,我希望在该视图中的部分视图内显示(不要问,这很复杂).我知道我可能甚至不应该将模型传递给另一个视图的视图,但我注意到部分视图实际上是从parenmt视图继承模型: public ActionResult Index(){ Person p = new Person
我将一些数据传递给我的控制器中的View,我希望在该视图中的部分视图内显示(不要问,这很复杂).我知道我可能甚至不应该将模型传递给另一个视图的视图,但我注意到部分视图实际上是从parenmt视图继承模型:

public ActionResult Index(){

 Person p = new Person
 {
    FName = "Mo",LName = "Sep"

 };

 return View(p);

}

然后在我的索引视图中我有:

<h2>Index</h2>

@Html.Partial("_IndexPartial")

和_IndexPartial里面我有:

@Model.FName

这打印“莫”.

这种行为是否与WPF中的行为一样,其中子控件继承其父View的数据上下文?在您的应用程序中使用它是不正确的做法?

谢谢.

解决方法

Is this behaviour intended like that in WPF where child controls
inherit the data context of their parent View?

是.

我看到你目前没有通过任何模型
是否可以继承布局,然后根本不需要使用部分?

如果你想继续像你一样使用它,也许只是更明确一点,并将当前模型传递给部分.

@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}以相同的方式访问模型,但这不是一个好习惯.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读