∈鱼杆 ---我的鱼塘

执着,坚定,友爱,勇敢(www.pumaboyd.com)Live Message

导航

MonoRailMVC应用-母板页的Title

Posted on 2008-12-22 10:59  ∈鱼杆  阅读(287)  评论(0编辑  收藏  举报

母板页是具体设计网站首先要面对的问题。MonoRail默认在Views/layouts目录中。因为我配置过目录,所以我的目录是在wap3/layouts下。接下来我沿用ASP.NET对母板页的一些说法来表述,方便大家更快的理解和使用
内容页中设置母板页的Title、Metal信息
因为MonoRail的layouts是没有后代码的(重点说明),那么有些需要在母板页处理的逻辑怎么使用呢?其实很简单只要在母板页上定义一个变量,内容页进行赋值即可
母板页添加如下代码:

 <title>$headtitle </title>

内容页CS代码进行赋值

public void Index()
{
   PropertyBag["HeadTitle"] = "首页数据";
}

这样就完成了在内容页中修改母板页内容的过程。
母板页的默认值
但这样你会发现一个,就是每一个调用母板页的地方都必须去设置这个headtitle,否则他直接输出$headtitle。显然需要一个默认值。每一个页面去设置默认值,加重了开发的负担。这样我就定义了一个BaseController类
public class BaseController : Controller
{
public BaseController()
{
PropertyBag["HeadTitle"] = String.Empty;
}
}

让所有的内容页后代码都从BaseController继承,这样就解决的默认值的问题
空默认值更简单
你如果认为新定义一个基类比较麻烦,而你的值默认是为空的,那么这样使用更加方便。如果没有赋值,在内容页中将不显示

 <title>$!headtitle </title>

但如果你需要一些定制化的默认值,这样就比较麻烦了。所以我还是建议都从BaseController继承。