在Asp.net中提供了MasterPage母版页的机制,可以实行整体风格的控制
在MonoRail中同样提供了这种机制,可以方便的处理布局和一些整体风格。
使用方式很简单,主要就是Layout属性:
LayoutController.cs
/views/master.vm
/views/layout/index.vm
如果熟悉Asp.net中的母版页的话应该很好理解的
在MonoRail中同样提供了这种机制,可以方便的处理布局和一些整体风格。
使用方式很简单,主要就是Layout属性:
LayoutController.cs
1
[Layout(
"
/master
"
)]
2 public class LayoutController : Controller
3
{
4 public void Index()
5
{
6 //LayoutName = "/master2";
7
8 }
9 }
表示这个Controller里面所有的vm都是使用/master的布局设置。其中第六行注释放开之后可以动态更换一个布局2 public class LayoutController : Controller
3
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
4 public void Index()
5
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
6 //LayoutName = "/master2";
7
8 }
9 }
/views/master.vm
<
html
>
< body >
$!head < br />
Welcome!
< p > $childContent </ p >
$!footer
</ body >
</ html >
指定了三个区域,就相当于三个Asp.net中的内容一样,其中$childContent是固定名称的< body >
$!head < br />
Welcome!
< p > $childContent </ p >
$!footer
</ body >
</ html >
/views/layout/index.vm
#capturefor(head)
11111
#end
Inner Content
#capturefor(footer)
22222
#end
最后显示的结果就是两个vm结合后的页面显示11111
#end
Inner Content
#capturefor(footer)
22222
#end
如果熟悉Asp.net中的母版页的话应该很好理解的