默认情况下,ASP.NET MVC 3 的新项目模板将以下内容添加到默认布局(razor 中的母版页):
<title>@ViewBag.Title</title>
View 必须包含以下内容来分配页面的标题,例如:
@{
ViewBag.Title = "Log On";
}
也许这只是我自己的喜好,但我发现使用 ViewBag 来保存标题有点错误(我认为魔术字符串的味道太多了)。所以我的问题是:对于使用 ASP.NET MVC 3 和 razor(使用动态属性包)的人来说,这是推荐的最佳实践,还是您选择了更强类型的东西(可能涉及自定义基类?)
最佳答案
我不认为 asp.net MVC 3 附带的默认标题处理功能有什么不好,可以这样做。
我个人这样做(下面写)来处理标题,我不认可以下代码 或者说它比默认功能更好,这只是一种偏好。
掌握
<title>
@RenderSection("Title");
</title>
看法
@section Title
{
write title
}
我可以建议改进默认功能的一件事
@{
string pageTitle = @ViewBag.Title ?? "Title Not Set";
}
<title>@pageTitle</title>
所以每当你忘记在viewbag中添加它时,页面就会显示title=
Title Not Set
也可以创建一个基类,然后让所有 Controller 从该基类继承。但我认为它为
title
带来了太多的痛苦.
关于asp.net-mvc-3 - ASP.NET MVC 3 中 ViewBag.Title 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979629/