摘要: Razor中的内联模板特性并没有被广泛讨论,但是它提供了将内联模板作为方法参数的能力。现在只有asp.net页面中的Grid helper使用了内联模板,也并没有很多关于如何创建自己的模板帮助类的文档,但是本文会对其进行一定的探讨。首先,我们来看一下当使用内联模板的时候生成了什么代码。下面通过一个 "Repeat"的模板帮助类来说明,这个帮助类的功能是按照指定的次数重复输出模板内容。使用这个帮助类... 阅读全文
posted @ 2010-08-18 15:31 镜涛 阅读(1145) 评论(1) 推荐(1) 编辑
摘要: 我们看一下之前例子中的代码:<li>@p.Name($@p.Price)</li>是如何解析的。当遇到"<li>"字符序列的时候,解析器知道正在解析一个以"</li>"为结束标志的标记。然后标记解析器在解析到结束标志之前发现了一个"@"字符,就像"@foreach"一样,再次切换到代码解析器。这时和之前的解析有些不同,C#代码解析器发现第一个标识符"... 阅读全文
posted @ 2010-08-18 15:31 镜涛 阅读(1525) 评论(2) 推荐(1) 编辑
摘要: ASPX语法比较简单,所以ASPX解析器几乎完全是通过正则表达式来实现的。Razor解析器与ASPX解析器之间有很大不同,它实际上分为三个独立的组件:1)理解基础HTML语法的标记解析器;2)理解基础C#或者VB语法的代码解析器;3)理解标记和代码如何混合的中央控制器所以Razor解析器有三个参与者:代码解析器,标记解析器,代码解析器。三个组件相互配合,协同工作完成对Razor文档的解析。Razo... 阅读全文
posted @ 2010-08-18 15:25 镜涛 阅读(1799) 评论(6) 推荐(3) 编辑
摘要: Razor语法的主要设计目标是:让代码和标记流能够一起工作同时尽量不与控制字符冲突。例如,下面的ASPX代码:<ul><%foreach(varpinModel.Products){%><li><%=p.Name%>($<%=p.Price%>)</li><%}%></ul>现在,我们仅留下我们实际上关... 阅读全文
posted @ 2010-08-18 15:18 镜涛 阅读(1844) 评论(3) 推荐(1) 编辑
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名孙镜涛(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言