ASP MVC - Razor Layout总是接收Page的模型

时间:2015-02-23 12:06:18

标签: asp.net asp.net-mvc razor

我网站布局中的所有页面都继承了主布局。每当我在Layout视图中粘贴调试断点时,我都可以看到布局类的Model与控制器传递给View的模型相同。我的布局文件是无类型的(除了页面本身之外没有@model声明)

此外,在此布局内发生的任何“RenderPartials”调用都会将此模型传递给其他视图。

这是对的吗?

这意味着我可以在我的布局中执行@ Model.SomeProperty工作/不工作,具体取决于我是否访问了具有“SomeProperty”属性的Model类的页面!

一个例子:

Page.cshtml

@model Project.PageModel
Layout = "/Views/Layout/Master.cshtml";

Master.cshtml:

Html.RenderPartial("../Layout/_Footer", null, null);

_Footer.cshtml:

@Html.Raw(Model.GetType().ToString())


<div class="blah">    
    ...
</div>

查看此页面会输出“Project.PageModel”,即使它没有模型声明,我也明确地传递了一个NULL模型和一个NULL ViewDataDictinary。然后,我可以从主布局呈现的部分内部调用此模型上的属性。

0 个答案:

没有答案