• Razor视图引擎的基本概念与法语


    Razor 视图引擎的特点:

    • 简洁、富于表现、流畅

        尽量减少页面代码的输入,实现快速流畅的编程工作

        不必明确为服务器代码标记起始与结束符,Razor 能智能判断,这样让页面看清洁,代码方便阅读

        aspx代码

        

     <ul>
              <% foreach(var str in list ){
                 %>
                 <li>
                 <%=str %>
                 </li>
                 <%
                 } %>
           </ul> 
    

       Razor代码

    <ul>
    @foreach (var str in list) { 
    <li>@str</li>
    }
    </ul>
    • 易于学习

           对于有过WEB开发经验的人来说, 能快速学会,就几个需要注意的点

    • 支持单元测试         

    Razor的基本语法

      伟大的@标记

      @标记是Razor的根本,服务器端代码段都以@开始 

      代码块

      

    @{
        var i = 100;
        var str = "Holle world!";
        }

      HTML编码

      @输入都是经过编码的,如果不需要编码,需要使用@Html.Raw(str)

          代码与纯文本混合

      方式一、用<text>输出的文本内容</text>

    @for (int i = 0; i < 10; i++)
    {
    <text>Holle world</text> 
    }

      方式二、使用 @: 输出

    @for (int i = 0; i < 10; i++)
    {
     @:Holle world
    }

    表达式与文本混合

    Holle @FirstName . @LastName .

     

    EMAIL地址

      151279853@qq.com

      Razor可以自动认别Email地址,而不会做服务器代码执行

    输出@符号

      当页面需要输出@符号时,连续两次@@ 这样输出,与C#的转义字符类似。

    显示输出

      当@与前面的文本之间无空间时,需要使用()号输入,如 <text> Hello@(UserName) </text>(<text>标记其实是为了让Razor把<text>当HTML标签处理,但不输出)

    服务器断注释

      @*

        This is server side

        This is server side

      *@

     Razor创建委托

      Razor创建委托是为以复用视图逻辑

    @{
        Func<dynamic, object> b = @<strong>@item</strong>;
        }
    
    @b("这样会给字体加粗!")
    

      内容中混合代码

      

    <ul>
     @foreach (var str in list)
     {
         <li>
        @if (isTrue)
        {
          @: isTrue 为 @isTrue   
        }
        else
        {
          @:(isTrue 为 @isTrue)
        }
         </li> 
     }
    </ul>
    

      多行内容混合代码

    当多行内容在HTML闭合的标签中时,可以直接使用@

    @if (isTrue)
    {
        <p>
        现在时间<br />
        现在时间是:@DateTime.Now<br />
        现在时间<br />
        </p> 
    }
    

        当多行内容不在HTML闭合标签中时,需要使用行输出标记@: 或 <text></text>标记

    @if (isTrue)
    {
        
        @:现在时间<br />
        @:现在时间是:@DateTime.Now<br />
        @:现在时间<br />
         
    }
    
    
    @if (isTrue)
    {
        <text>
        现在时间<br />
        现在时间是:@DateTime.Now<br />
        现在时间<br />
        </text> 
    }
    

      

     

     

  • 相关阅读:
    2017光棍节新生训练赛
    javascript模块化编程(二):AMD规范
    javascript模块化编程(一):模块的写法
    CommonJS Promises/A规范
    javascript面向对象(三):非构造函数的继承
    javascript面向对象(二):构造函数的继承
    javascript面向对象(一):封装
    this用法(ryf)
    javascript继承机制的设计思想(ryf)
    XMLHttpRequest对象用法
  • 原文地址:https://www.cnblogs.com/ljx2012/p/3644864.html
Copyright © 2020-2023  润新知