在ASP.NET中,我们是很容易动态为header节点添加meta信息。
《》和《》那在ASP.NET MVC中,怎样能动态为header添加meta呢?为了解决问题,建议先看这篇《》 。看完之后,你自然会明白,Insus.NET是使用RenderSection来实现:在_layout.cshtml的header节点内,定义一个section标记:创建一个控制器:
在视图中,就可以写呈现的代码了,不管是手写,还是从数据库获取meta数据:运行浏览时,右键view source:嘿嘿,问题又来了,如果视图是没有_layout.cshtml,它是单独一页,我们想动态添加或是添加meta那又怎么办:再创建一个视图测试测试:你会直接按照上面的方法来修改:当你信心足足运行它时,它既然出错了:The file "~/Views/xxxx.cshtml" cannot be requested directly because it calls the "IsSectionDefined" method.因为RenderSection是继承母版页的,单独一个视图不能这样解决,那要怎样处理?修改一下吧:使用viewBag来解决。视图经这样一改,得在控制器的Action实现相关代码:
看看源代码: