知识大全 Asp.net MVC中页面标题的新解决方法
Posted 标题
篇首语:赚钱之道很多,但是找不到赚钱的种子,便成不了事业家。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.net MVC中页面标题的新解决方法相关的知识,希望对你有一定的参考价值。
Asp.net MVC中页面标题的新解决方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在 MVC 正式版中的模板页中提供了 <asp:ContentPlaceHolder ID= TitleContent runat= server />
这样可以让你在每个View中独立设定页面标题(Title) 不过这样的弊端就是假如我的页面标题是如下形式 统一标题 副标题
那么要在每个View中都写上 日记页面
<asp:Content ID= Content ContentPlaceHolderID= TitleContent runat= server > CaraQ 日记</asp:Content>
相册页面
<asp:Content ID= Content ContentPlaceHolderID= TitleContent runat= server > CaraQ 相册</asp:Content>
……
假如有一天我要把其中的统一标题改一下那就得一个页面一个页面的去改 太过麻烦 而且这种命名标题的方法我认为也有背MVC的精神 让控制器决定视图显示的内容
其实有更简单的实现方法 如下
首先定义每个Controller的父类如下
Code public class BaseController : Controller private readonly string _titleFormat = CaraQ ; private string _title;
protected string Title get return _title; set _title = value;
protected override void OnActionExecuted(ActionExecutedContext filterContext) ViewData[ Title ] = string Format(_titleFormat Title); base OnActionExecuted(filterContext); 让所有的Controller继承这个父类 设置页面标题的方法只需要在Action中使用如下方式即可
public class BlogController : BaseController public ActionResult Index() this Title = 日记 ;
最后在模板页中把TitleContent占位控件换成:
<%=ViewData[ Title ] %>
这样就可以了 看到这样给页面命名标题是不是就简单多了 在View中了不会有那个像
<asp:Content ID= titleContent ContentPlaceHolderID= TitleContent runat= server ></asp:Content>
cha138/Article/program/net/201311/13769相关参考