asp.net-mvc-3 - ASP.NET MVC 3 中 ViewBag.Title 的替代方案

标签 asp.net-mvc-3 razor viewbag

默认情况下,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/

相关文章:

c# - 使用循环在 HTML(MVC) 中显示列表字符串

asp.net-mvc - MVC 3/Razor 中的通用操作链接

asp.net-mvc - FormsAuthentication 友好名称

jquery - 如何在 jquery ui Datepicker 中将日期时间设置为默认值

jquery - Ajax 调用未绑定(bind)所有模型属性

javascript - ASP.NET MVC 中动态生成 Javascript、CSS

asp.net-mvc - MVC ViewBag 最佳实践

javascript - 为什么Viewbag不显示在asp.net mvc View 页面中?

asp.net-mvc-3 - 带有存储过程的 DDD 规范模式

asp.net-mvc-3 - 为什么不大量使用 ViewBag?