使用StringTemplate作为ViewEngine的ASP.Net的MVC(二)
来源:互联网 发布:外包数据存储 编辑:程序博客网 时间:2024/06/05 19:32
我的下一个步骤是建立一种观点引擎字符串模板,插入的MVC框架。 继导致的MVC团队,我延长IViewEngine和IView接口和想出了一个非常简单的问题。
我的要求 , ViewEngine如下:
- 模板必须缓存。
- 快取模板必须刷新基于文件系统的变化。 否则,发展是一个真正的痛苦。
- 为提高业绩,必须提供的模板的输出流,而不是产生一个可怕的字符串,得到的答复倾倒。
没想到,我知道,这些要求会更容易些,以满足比我想象。 撬拨后,各地在StringTemplate文件,我发现模板本地缓存,并利用FileSystemWatcher检测变化。 此外,该对象,使模板可以转储到一个字符串,以及一个流。 如果只有我所有的编码努力制定这样。
我不会过于深入挖掘的细节,但执行很简单。 而不是博客了,我只要让代码自己说话。 我创建了一个谷歌典项目,东道国我ViewEngine 。 随意下载和踢轮胎。
如上所述的前一页,所有的数据所需要的模板,必须建立在ViewDataDictionary之前被判决。 该ViewEngine采取一切从呼叫控制器的可视词典和填充数据容器的模板。 此外,该引擎将添加上下文的集装箱所以获得的范本。
可视对象
项目可视词典可把它们之间的美元符号。
条件只能评价TRUE或FALSE 。 因此,你不能说这样,如果( employee.username == “ super.user ” ) ,等等,这可能看起来像是一个巨大的失踪功能,但它实际上是出色地执行模型视图分离。随着用户界面只有理解true或false ,但只有这样才能让你不硬编码身份证,价值观,和其他一般业务逻辑到您的模板。反而如果( employee.username == “ super.user ” ) ,您可以创建一个可视变量称为“ IsSuperUser “并将它设置为True 。 这样,该模板并不知道什么是“超级用户” ,但只知道把部分网页和关闭。 条件语句
1.
ViewData[
"IsSuperUser"
] =
true
;
1.
<
div
>
2.
Employee Detail:
3.
$if(IsSuperUser)$
4.
<
a
href
=
"/allowEdit"
>Edit</
a
>
5.
$else
6.
Editing not allowed
7.
$endif$
8.
</
div
>
迭代
您可以迭代集合位于可视。 这里的格式。
1.
var employee1 =
new
{ Id=1, Name=
"Joe"
};
2.
var employee2 =
new
{ Id=2, Name=
"Sally"
};
3.
ViewData[
"employees"
] =
new
object
[] { employee1, employee2 };
1.
<
ul
>
2.
$employees:{
3.
<
li
>$it.name$ has an ID of $it.id$</
li
>
4.
}$
5.
</
ul
>
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(二)
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(三)
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(一)
- ASP.NET MVC - 定制属于你自己的ViewEngine
- ASP.NET MVC - 定制属于你自己的ViewEngine
- ASP.NET MVC - 定制属于你自己的ViewEngine
- Asp.net MVC 自定义ViewEngine的简单实现
- asp.net mvc - View/ViewEngine
- 返璞归真 asp.net mvc (4) - View/ViewEngine
- StringTemplate 的使用
- 返璞归真asp.net mvc 1.0(4) - View/ViewEngine
- asp.net mvc (4) - 自定义视图引擎 View/ViewEngine
- 【MVC整理】1.使用 StructureMap 作为 ASP.NET MVC 的 DI 框架
- Asp.net mvc Kendo UI Grid的使用(二)
- [template engine]StringTemplate的使用
- ASP.NET MVC学习笔记-ViewEngine 深入解析与应用实例
- 从零开始学习 ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例
- ASP.NET MVC 3 CheckBoxList 的使用
- Python正则表达式(二)
- Linux中fstab文件的配置和理解(转)
- Python正则表达式(三)
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(一)
- chroot Linux中的所有服务
- 使用StringTemplate作为ViewEngine的ASP.Net的MVC(二)
- Python正则表达式(四)
- nginx负载均衡的4中配置策略
- 我的ERP老师
- 实话实说
- CTreeCtrl 单击消息
- MY
- log4net使用详解
- 成功的10个“商”