Razor视图引擎

简介: 目前我们使用asp.net开发的过程中,接触了三种开发模式:一般处理程序(ashx),webform(aspx),mvc。具体关于asp.net的介绍,请看博客:[总览]Asp.net。 在学习mvc时,我对这两种搜索引擎机制:razor和winform有了新的理解。在mvc中添加视图时,不知道大家有没有注意到这两种视图的区别:

目前我们使用asp.net开发的过程中,接触了三种开发模式:一般处理程序(ashx),webform(aspx),mvc。具体关于asp.net的介绍,请看博客:[总览]Asp.net。


   在学习mvc时,我对这两种搜索引擎机制:razor和winform有了新的理解。在mvc中添加视图时,不知道大家有没有注意到这两种视图的区别:


一、两种引擎:

视图1:使用Razor


20161220110954744.png


得到比较赶紧清晰的页面:



20161220111008126.png

视图2:使用Winform引擎



20161220111017423.png

页面的内容就比较丰富了:


20161220111035236.png

razor文件的扩展名是.cshtmlwinform文件的扩展名是.aspx我们之前接触了很多关于winform引擎的知识,这次给大家简单介绍一下razor的内容。


二、razor中的@符号


它被定义为Razor服务器代码块的开始符号。


1、如果我们希望在网页中输出一个变量,或者当前日期,我们可以使用如下代码:


<h2>Details</h2>


<h3>这是子页面的内容</h3>


@{string productName = "圣诞节快乐";}


<span>@productName</span>


<span>@DateTime.Now.ToString("yyyy-MM-hh")</span>

20161220111128387.png

 

2、也可以在@{}下直接进行运算

 @for (int i = 0; i < 10; i++)
        {
            <span>@i  ==<%: i%></span>
            i++;
            int a = i + 1;
        }


3、输出


3.1输出@符号:@@


  3.2输出Email地址:Razor模板会自动识别出Email地址,所以不需要我们进行任何的转换。而在代码 块中,只需要使用@:Tom@gmail.com 即可。@:表示后面的内容为文本。


  3.3输出HTML代码(包含标签):直接输出,stringhtml = "<font color='red'>文本</font>"; @html


  3.4输出HTML内容(不包含标签):有两种方法,第一种:IHtmlStringhtml=new HtmlString("<font color='red'>文本</font>");@html; 第二种:string html = "<font color='red'>文本</font>";@Html.Raw(html);


三、razor注释


这里所说的注释是指服务器端的注释,在Razor代码块中,可以使用C#的注释方式来进行注释,分别是//:(单行注释)和/**/(多行注释)。


   另外,Razor还提供了一种新的服务器段代码注释,可以即注释C#代码,同时可以注释HTML代码,@**@,这种注释方式不受代码块的限制,在Razor代码中的任何位置都可以。


    @*
    这是一个注释
    <b>这个是注释</b>
    *@

四、优点(了解):


1紧凑、富有表现力和流畅:


Razor尽量减少一个文件里需要敲入的字符数,给你畅快淋漓的编码体验。与大部分模板的语法不同,你不会因为需要在HTML中标注服务器端代码块而中断敲代码的快感。代码分析器足够聪明,能够从你的代码里推断出是否为服务器端代码。这使得其简洁、富有表现力的语法输入能够干净,快速,有趣。


2、上手快:


   Razor非常容易上手,你只需要了解很少的新东西就可以掌握它,使用你现有的编程语言和HTML知识就足够了。


3、不是一个新的编程语言:


   我们尽量避免为Razor创建一个新的命令式语言。相反,我们希望让程序员只使用现有的C#/VB(或其它)编程语言知识就能使用Razor,我们只不过在你选择的编程语言里,提供一个非常棒的基于模板生成HTML的标记语法。


4、 可以使用任何文本编辑器编写:


   Razor不要求什么特别的工具,使用老古董的文本编辑器也可以高效编程(“记事本”就不错)。


5、很好的智能感应输入提示:


   虽然Razor不是专为某个工具或者代码编辑器设计的,但它在Visual Studio里还是有很赞的智能提示功能。我们将会升级VisualStudio 2010和Visual Web Developer 2010使得它具有完整的编辑器智能提示功能。


6、便于单元测试:


   新的视图引擎支持对视图执行单元测试,不需要控制器(controller)或者Web服务器,而且可以包含在任意的单元测试项目中—不需要单独的应用程序域(App-Domain)。


7、弹性的选择空间


   ASP.NET最赞的地方之一就是大部分组件都是可插拔的。如果你发现有一个组件不好用,随时都可以换成另外一个。


总结:

razor视图引擎是一种页面更简洁,操作更简单,服务器代码和HTML代码混写的代码模板

 

推荐阅读:http://blog.csdn.net/mrobama/article/details/45116859

相关文章
|
运维 架构师
架构师“三部曲”——阿里云 MVP 沈剑
沈剑,公众号“架构师之路”的作者,曾任百度高级工程师和58同城高级架构师、技术委员会主席、技术学院优秀讲师,现为到家集团技术委员会主席和技术VP,同时也是快狗打车(原58速运)的CTO。本文是沈剑老师在阿里云的直播中分享的一些自己关于架构师的看法和成为架构师的心路历程的第二部分。
3903 0
架构师“三部曲”——阿里云 MVP 沈剑
|
机器学习/深度学习 存储 人工智能
【AI系统】模型转换基本介绍
模型转换技术旨在解决深度学习模型在不同框架间的兼容性问题,通过格式转换和图优化,将训练框架生成的模型适配到推理框架中,实现高效部署。这一过程涉及模型格式转换、计算图优化、算子统一及输入输出支持等多个环节,确保模型能在特定硬件上快速、准确地运行。推理引擎作为核心组件,通过优化阶段和运行阶段,实现模型的加载、优化和高效执行。面对不同框架的模型文件格式和网络结构,推理引擎需具备高度的灵活性和兼容性,以支持多样化的应用场景。
639 4
【AI系统】模型转换基本介绍
|
SQL 监控 Java
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
585 0
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
安全 Linux 网络安全
OpenSSH漏洞修复(升级最新版本流程)
【5月更文挑战第27天】OpenSSH漏洞修复(升级最新版本流程)
1797 1
OpenSSH漏洞修复(升级最新版本流程)
|
存储 应用服务中间件 nginx
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
Nginx模块开发:模块结构的源码阅读以及过滤器(Filter)模块的实现
398 0
|
机器学习/深度学习 编译器 API
python文字转语音(pyttsx3+flask)
本文主要讲解如何用python的pyttsx3库+flask框架,手写一个文字转语音api
648 0
|
机器学习/深度学习 人工智能 数据挖掘
代码案例详解!如何让机器学习模型自解释!⛵
本文讲解一种比较全能的『机器学习模型可解释性』方法——SHAP。通过调用Python的SHAP工具库,对机器学习模型做可解释性分析,判断不同特征对于当前模型的重要程度。
1376 2
代码案例详解!如何让机器学习模型自解释!⛵
|
存储 NoSQL Redis
redisTemplate.opsForValue().get(KEY)从Redis中取出的值为null 的解决方法
redisTemplate.opsForValue().get(KEY)从Redis中取出的值为null 的解决方法
984 0
|
监控 Java 应用服务中间件
【Zabbix】Zabbix JMX 接口配置
【Zabbix】Zabbix JMX 接口配置
317 0

热门文章

最新文章