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