在Asp.net中提供了MasterPage母版页的机制,可以实行整体风格的控制
在MonoRail中同样提供了这种机制,可以方便的处理布局和一些整体风格。

使用方式很简单,主要就是Layout属性:
LayoutController.cs
1MonoRail学习笔记十二:layout布局的使用    [Layout("/master")]
2MonoRail学习笔记十二:layout布局的使用    public class LayoutController : Controller
3    }
表示这个Controller里面所有的vm都是使用/master的布局设置。其中第六行注释放开之后可以动态更换一个布局

/views/master.vm
MonoRail学习笔记十二:layout布局的使用<html>
MonoRail学习笔记十二:layout布局的使用
<body>
MonoRail学习笔记十二:layout布局的使用$!head 
<br/>
MonoRail学习笔记十二:layout布局的使用Welcome!
MonoRail学习笔记十二:layout布局的使用
<p>$childContent</p>
MonoRail学习笔记十二:layout布局的使用$!footer
MonoRail学习笔记十二:layout布局的使用
MonoRail学习笔记十二:layout布局的使用
</body>
MonoRail学习笔记十二:layout布局的使用
</html>
指定了三个区域,就相当于三个Asp.net中的内容一样,其中$childContent是固定名称的

/views/layout/index.vm
MonoRail学习笔记十二:layout布局的使用#capturefor(head)
MonoRail学习笔记十二:layout布局的使用    11111
MonoRail学习笔记十二:layout布局的使用#end
MonoRail学习笔记十二:layout布局的使用Inner Content
MonoRail学习笔记十二:layout布局的使用#capturefor(footer)
MonoRail学习笔记十二:layout布局的使用    22222
MonoRail学习笔记十二:layout布局的使用#end
最后显示的结果就是两个vm结合后的页面显示

如果熟悉Asp.net中的母版页的话应该很好理解的

相关文章: