zoukankan      html  css  js  c++  java
  • EF5+MVC4系列(9) Razor视图引擎的核心原理;@符号的使用;输出html的转义

    一:Razor视图引擎的核心原理

    Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项 ,他是一个视图引擎

    他的核心原理,就是当读取到 @符号的时候,就认为这是开始c#代码,并且 会自动寻找 {  } 作为开始和结束.但是当他不管在任何地方碰到<> 和 </>的时候,就不会当做是c#代码,而是当做html代码,我们会看到,在真正生成的 视图类代码里面  <span>xx</span>  会直接被 Response.Write(“<span>xx</span>”)

    疑问,Razor是能自动识别html么? 答案,不能,他是根据 <>和</> 这种尖挂号来识别的, 例如你写成 <joey>我随便写的标签</joey> 他也会识别成html代码,这里有个注意事项就是,如果是单标签 </br>  他也是可以识别成html的

     

     

    二: 在前台视图中  @符号的使用

    2.1 : 后面跟一个有返回值的,那么就会直接输出变量值

    image

     

     

    2.2: 后面跟一个大括号,用于保存变量

    image

     

     

    2.3: 如果@后面调用的方法是没有返回值的,那么要用大括号

    image

     

     

    2.4 : 用Html.Raw 和 MvcHtmlString.Create 来禁止转义

    image

    前台显示如下

    image

    实际的html 是

    image

     

    2.5 : 用helper来定义一个方法

    image

    前台生成的html是

    image

    注意,当我们查看源码的时候发现,我们用  Helper 创建的方法,会在 视图的前台页面类里面,添加了一个返回值为 HelperResult 的方法

    image

    2.6 @用小挂号的情况 ()

    一种特殊情况,我后台有个变量为 ViewBag.Cname=”aa”;

    然后我在前台视图里面,想输出 aa . Cname  这个时候就需要在前台用到 () 小挂号 把前面的一部分当做是变量

    image

    image

    前台生成值就把  ViewBag.Cname的值输出为 aa  并且在后面加了 .Cname 这个字符串

    image

     

  • 相关阅读:
    SQL 拾遗
    PowerDesigner技巧
    进步
    'data.csv'
    System.Web”中不存在类型或命名空间名称script /找不到System.Web.Extensions.dll引用
    要学的技术
    Sql 表变量
    Tomcat 7.0的配置
    开发工具
    jQuery UI Dialog
  • 原文地址:https://www.cnblogs.com/joeylee/p/3859778.html
Copyright © 2011-2022 走看看