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 = ;
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>
}

  

Razor视图引擎的基本概念与法语的更多相关文章

  1. Razor视图引擎布局 Razor视图引擎的基本概念与法语 SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射 binary 和 varbinary datetime 和 smalldatetime float 和 real

    Razor视图引擎布局   不需要像过去aspx一样,使用.Master文件,而是统一使用.cshtml 或 .vbhtml文件.但文件名一般以 _开头,这样做文件不会当做View显示出来 使用@Re ...

  2. ASP.NET MVC 3 Razor 视图引擎 基本语法

    本篇博文将进入MVC 3 的世界了,首先学习一下MVC 3 新增的Razor视图引擎的基本语法. 1. 使用 @ 字符将代码添加到页面中.正如传统的aspx视图的<% %>相同.      ...

  3. ASP.NET MVC——Razor视图引擎

    Razor是MVC框架视图引擎,我们今天就来说一说Razor视图引擎. 首先还是来创建一个基础项目叫Razor来演示. 先来定义一个Model叫Product public class Product ...

  4. ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

    一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留 ...

  5. Razor 视图引擎 – ASP.NET MVC 4 系列

           Razor 视图引擎是 ASP.NET MVC 3 开始扩展的内容,并且也是默认视图引擎.        Razor 通过理解标记的结构来实现代码和标记之间尽可能顺畅的转换.下面的例子演 ...

  6. ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

    一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留 ...

  7. Razor视图引擎语法

    @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...

  8. ASP.NET Razor 视图引擎编程参考

    ASP.NET Razor 视图引擎编程参考   转载请注明出处:http://surfsky.cnblogs.com Rasor 视图引擎    http://msdn.microsoft.com/ ...

  9. ASP.NET MVC Razor视图引擎攻略

    --引子 看下面一段MVC 2.0的代码. <%if (Model != null){%> <p><%=Model%></p><%}%>&l ...

随机推荐

  1. ubuntu修改登录信息(本机和SSH登录)

    1.需要修改的主要文件和目录如下:/etc/issue/etc/motd/etc/update-motd.d//etc/issue.net 2.Ubuntu的登陆和欢迎信息控制主要在/etc/issu ...

  2. 借网上盛传2000w记录介绍多进程处理

    2000w的数据在网上搞得沸沸扬扬,作为技术宅的我们也来凑凑热闹.据了解网上有两个版一个是数据库文件另一个是CSV文件的,前者大小有好几个G后者才几百M.对于不是土豪的我们当然下载几百M的.至于在哪下 ...

  3. tomcat源码解读(2)–容器责任链模式的实现

    责任链模式:责任链模式可以用在这样的场景,当一个request过来的时候,需要对这个request做一系列的加工,使用责任链模式可以使每个加工组件化,减少耦合.也可以使用在当一个request过来的时 ...

  4. PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询

    伴随微信的红火,微信公众平台成为许多开发者的下一个目标.笔者本身对于这种新鲜事物没有如此多的吸引力.但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能.于是便在空余时间研究了一番. 主要的实现步骤 ...

  5. Websocket协议之php实现

    前面学习了HTML5中websocket的握手协议.打开和关闭连接等基础内容,最近用php实现了与浏览器websocket的双向通信.在学习概念的时候觉得看懂了的内容,真正在实践过程中还是会遇到各种问 ...

  6. linux 输入子系统(3)----事件处理(input_handler层)

    输入子系统主要设计input_dev.input_handler.input_handle.如下: [1]每个struct input_dev代表一个输入设备 struct input_dev { c ...

  7. Torry的困惑(基本型)

    #include<stdio.h> int main() { long long i,j; int n; //用于记录输入的要进行乘积的质数的个数 ; //用于记录前n个质数的乘积,并初始 ...

  8. (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介

    Qt Model/View模式简介 Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来定制数据项 ...

  9. Java 多线程 简单实例 (消费者与生成者)的关系

    PS::线程这套东西在PHP里完全是不存在的概念,有待进一步的学习: PS::这个实例是根据书本上的知识进行扩展的,理解程度50%左右吧! 1.定义生产消费环境 package second; pub ...

  10. ios Base64编解码工具类及使用

    为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输. 对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可 ...