博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF5+MVC4系列(9) Razor视图引擎的核心原理;@符号的使用;输出html的转义
阅读量:6912 次
发布时间:2019-06-27

本文共 804 字,大约阅读时间需要 2 分钟。

一: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 : 后面跟一个有返回值的,那么就会直接输出变量值

 

 

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

 

 

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

 

 

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

前台显示如下

实际的html 是

 

2.5 : 用helper来定义一个方法

前台生成的html是

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

2.6 @用小挂号的情况 ()

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

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

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

 

转载地址:http://doncl.baihongyu.com/

你可能感兴趣的文章
Maven详解(七)------ 创建Web工程以及插件原理
查看>>
二进制传输与文本传输的区别
查看>>
YMP运行初始化步骤
查看>>
Getting Started with the G1 Garbage Collector(译)
查看>>
MySql5.7.11 for Windows 安装精简版(一)
查看>>
Java线程池
查看>>
imx6设备树pinctrl解析【转】
查看>>
vue.js 入门
查看>>
Ansible系列(三):YAML语法和playbook写法
查看>>
JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理...
查看>>
Python 面向对象
查看>>
JAXB xml与javaBean的转换
查看>>
ResultSet 的Type属性 TYPE_FORWARD_ONLY, TYPE_SCROLL_I
查看>>
C#多线程--线程池(ThreadPool)
查看>>
Android FileProvider相关 Failed to find configured root that contains
查看>>
【Win 10 应用开发】UI Composition 札记(七):基于表达式的动画
查看>>
2.lombok系列2:lombok注解详解
查看>>
redis——学习之路五(简单的C#使用redis)
查看>>
Log4j中为什么设计isDebugEnabled()方法
查看>>
工作文件夹分类
查看>>