Oxite项目,页面Title的实现
2008-12-20 12:15 杰出的世界 阅读(968) 评论(0) 编辑 收藏 举报以前在自己的项目中实现页面Tite,一般是在页面的基类中,自动添加整个网站的名称,在页面的后台,以类似this.Title += ""之类的方式来实现。但是这么处理,总是感觉不怎么“优雅”。前两天看Oxite的代码时,发现在View中,并没有指定标题,但是,在最终生成的页面中,会自动处理好,同时分隔符也出现了。他是怎么来实现的呢?
在Oxite项目中,有PageTitleHelper类,此类从配置文件中获取siteName站点名称和pageTitleSeparator(标题内的风格符,如“ - ”)。在初始化的时候,作为参数,传给此类。
此类有一个公开的属性:AdditionalPageTitleSegments,String[]类型,主要作用是添加除了站点名称之外的副标题吧,比如站点名称为“XXX管理系统”,如果需要使最终的标题为“添加用户 - 系统管理 - XXX管理系统”,则AdditionalPageTitleSegments的值应该是 new String[] {"系统管理","添加用户"};使用此类的时候,直接调用ToString()方法。
PageTitleHelper
问题在于,在MVC中,再那个地方调用比较合适?在Oxite.Mvc项目中,有BaseController类,继承自Controller,Controller有两个关键的事件:OnActionExecuting(Action执行前的操作)和OnActionExecuted(Action执行后的操作 )。
BaseController
PageTitle在此类中,只是作为一个类型为PageTitleHelper的只读属性存在。
在使用的时候,比如View里的
然后在MastPage里对Title进行使用。