MVC--View层

     Razor二义性:

       1,当view层中出现   邮件格式时候比如   anbylau2130@qq.com 这种情况Razor将会出现多义性

       可以使用@@来转义为一个@字符,

       如:<p>you must follow @james,@jessica,@Andy</p>   这里Razor会以变量的形式解释james,jessica,andy,

          这不是我们想要的效果,所以可以使用@@来转义<p>you must follow @@james,@@jessica,@@Andy</p>

       但是Razor内部做了一般邮箱的识别,

       如:item_@items.Length可能会识别为邮箱地址,那么这时可以在后面加上item_(@items.Length)来计算后面的值

 

Html编码

  1, Razor表达式是Html编码的

   {

     @string message ="<script>alert(‘warning‘)</script>"

    }

    <div>@Message</div>                  这里就不会弹出对话框,而是编码后的html文本

  如果要显示一个对话框

          1,可以使用HtmlString的实例,

          2,可以使用@Html.Raw(message)

  应尽可能的避免脚本注入

 2,如果要在脚本中使用Razor语法,那么最好的解决方案便是   使用@Ajax.JavaScriptStringEncode(ViewBag.UserName)

 

 代码块

  @foreach(var item in lst)

    {

         <li>this is @item</li>

    }

   @{

           语句

      }

 

 注释:@**@

   布局

   @{layout=~/Views/Shared/SiteLayout.cshtml}

   @RenderBody()相当于web form中的Placehold控件

   @RenderPatitial() 进行部分视图的绘制

   //@RenderSection("Footer")

 

 

 

 

    

MVC--View层

上一篇:JavaScript 基础之变量


下一篇:HTML5 跨文档消息传输