MVC3 Razor视图引擎的基础语法
好久没有关注微软的开发了,今天看到了MVC3,顺便学习学习,我觉得Razor是个不错的做法,比使用<%%>简单多了,而且好看。首先“_”开头的cshtml文档将不能在服务器上访问,和asp.net中的config文档差不多。
Razor语法以@开头,以@{}进行包裹,在变量上使用private等等区域限定基本没啥作用,所以就不需要了,直接var声明即可。代码区分大小写,如果使用vbhtml估计就不区分了,本人使用c#所以不大清楚。初级web开发者都喜欢HTML和.NET并用,这个就满足了你的需求,感觉微软越来越........
注意:在字符串@变量字符串的组合中如"xxxxxx@ixxxxxxxx"如果要输出@i变量就需要mailto:%7B@i}包裹,否则将会解析错误。这个编辑器太郁闷会解析Email地址。下面贴上某位达人写的:
2. 使用逻辑处理
@{ if (xx) { //do something } else { //do anything } }
3. 在@{... }内部使用html标记
@{ <p>text</P> <div>div1</div> }
4. 在@{...}内部输出文本
利用@:进行单行输出:
@{ @:This is some text @:This is text too @:@i 也可输出变量 }
利用<text />进行多行输出:
@{ <text> tomorrow is good some girl is nice </text> }
5. 在@{...}内部使用注释
@{ //单行注释 var i = 10; //defg }
@* 多行注释 *@ @* 多行注释 多行注释 *@
@{ @* 多行注释 多行注释 *@ var i = 10; @* asdfasf *@ }
<!-- 同时也可以使用C#默认的/* ... */ --> @{ /* 多行注释 */ }
若在@{ ... }内部使用<!-- -->注释,则会输出到页面之中,如果在<!-- -->内部使用@变量,则会被处理
@{
<!-- time now: @DateTime.Now.ToString() -->
}
输出: <!-- time now: 4/9/2011 12:01 -->
6. 类型转换
AsInt(), IsInt()
AsBool(),IsBool()
AsFloat(),IsFloat()
AsDecimal(),IsDecimal()
AsDateTime(),IsDateTime()
ToString()
例子: @{ var i = “10”; } <p> i = @i.AsInt() </p> <!-- 输出 i = 10 --> 7. 使用循环 <!--方式1--> @for (int i = 10; i < 11; i++) { @:@i } <!--方式2--> @{ for (int i = 10; i < 11; i++) { //do something } } <!--while同理-->
到此结束!呼呼