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同理-->

到此结束!呼呼

原文地址:https://www.cnblogs.com/tianma3798/p/3711197.html