ASP.NET MVC在布局页上使用模型(model)

看到这标题有点怪,一般情况之下,我们很容易在视图与部分视图中使用模型(model),但是如果想在布局页_Layout.cshtml页中使用模型(model),按照普通方式也许没有达到预期的效果,在实现时有些情况需要注意的。

下面先按原先我们的设计,在控控制器创建三个视图操作(Action):
技术分享

 

创建一个布局页_May15.cshtml,然后上面的三个视图均引用此布局页.
技术分享

 

现在我们根据控制器的Action分别创建三个视图,Index.cshtml:
技术分享

 

PageA.cshtml:
技术分享

 

PageB.cshtml:
技术分享

 

OK,现在我们回至_May15.cshtml写model代码,添加下面标记1至标记3:
技术分享

现在我们分别浏览视图Index.cshtml,PageA.cshtml和pageB.cshtml:
技术分享

 

技术分享

 

技术分享

 

为什么视图Index.cshtml能正常显示,而PageA与PageB不能呢? 回过头去看控制器,只有Index控制器有返回return View(xxx):
如果三个控制器使用相同的代码,肯定是没有问题,对吧:
技术分享

但是实际上,我们不能这样去做,因为不同的视图,就是想表现不同的内容。这就是我们需要解决的地方。

下面是Insus.NET解决的方法,控制器中把三个操作改为:
技术分享

 

接下来,我们只去修改布局页_May15.cshtml:
技术分享

 

完成了,看到上面的代码了吧,就是这两行代码。其它视图均无需修改任何,它原本是怎样写,就是怎样写。
现在我们浏览三个视图,肯是没有问题的:
技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。