zoukankan      html  css  js  c++  java
  • 抛弃TitleContent Asp.net MVC中页面标题的新解决方法

    在Asp.net MVC 1.0正式版中的模板页中提供了:

    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />

    这样可以让你在每个View中独立设定页面标题(Title),不过这样的弊端就是假如我的页面标题是如下形式:

    统一标题 - 副标题

    那么要在每个View中都写上:

    日记页面:

    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
        CaraQ - 日记
    </asp:Content>

    相册页面:

    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
        CaraQ - 相册
    </asp:Content>

    ……

    假如有一天我要把其中的统一标题改一下那就得一个页面一个页面的去改,太过麻烦,而且这种命名标题的方法我认为也有背MVC的精神--让控制器决定视图显示的内容

    其实有更简单的实现方法,如下:

    首先定义每个Controller的父类如下:

    Code
     public class BaseController : Controller
     {
            
    private readonly string _titleFormat = "CaraQ - {0}";
            
    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>

    的控件了,要修改统一标题时只需要修改BaseController中的_titleFormat字串就可以了

  • 相关阅读:
    回顾python,就当做笔记了
    测试知识回顾
    转发 Python接口自动化
    性能测试脚本调优
    java
    新的一年,希望自己有所提升,在这简单的记录,自己的学习。
    navicat 连接 mysql 出现Client does not support authentication protocol requested by server解决方案
    tomcat context配置
    tomcat host 配置
    flyway使用
  • 原文地址:https://www.cnblogs.com/XiaoG/p/1457278.html
Copyright © 2011-2022 走看看