Razor视图引擎

使用C#语法的Razor视图文件扩展名为.cshtml;使用Visual Basic语法的Razor视图文件扩展名为.vbhtml。文件扩展名指出了Razor语法分析器的编码语言的语法。

Razor语法示例

1、隐式代码表达式:代码表达式(model.Message)将被计算并将值写入到响应中

<span>@model.Message</span>

注意:隐式代码表达式总是采用HTML编码方式

2、显示代码表达式:下面的model会被替换,而.Message会被当做一个静态字符串输出

<span>@(model).Message</span>

3、无编码代码表达式:

Razor表达式会将<>'等符号自动编码

@{string message="<script>alert('123');</script>"}

<span>@message</span>

输出结果:<span>&lt;script&gt;alert('123&#39)&lt;/script&gt;</span>  --在响应报文中看

新式浏览器渲染:<script>alert('123');</script>

使用Html.Raw声明不进行字符编码

例如:@Html.Raw("<div style='color:red'>输出字符串</div>")

结果:输出红色的文字 输出字符串

注意:存在安全隐患

4、代码块:与代码表达式先求出表达式值,再输出到响应不同,代码块是简单的执行代码

@{int x=123;string str="temp";int y=x+100;}

注意:当调用没有返回值(返回类型为void)的方法时使用花括号{}

例如:@{Html.RenderPartial{"PV"};}

文本:可以理解为字符串

标记:可以理解为html标签

代码:可以理解为C#语法

5、文本和标记相结合

@foreach(var item in items){<span>Item @item.Name.</span>}

6、混合代码和纯文本

使用特殊标签<text>

@if(showMessage){

<text>This is

plain text</text>

}

另一种写法

@if(showMessage){

@:This is plain text.

}

7、转义代码分隔符

My Handle is @@hacked

或者

My Handle is @hacked

8、注释

使用@**@

9、调用泛型方法

使用()将整个表达式包起来

示例:@(Html.Active<T>())

布局(类似母版页)

使用@RenderBody()、@RenderSection()作为占位符

_ViewStart.cshtml页面中的代码先于同目录下所有视图代码执行且可以递归地应用到子目录下的任何视图

部分视图

PartialView

Asp.net MVC 视图(二)的更多相关文章

  1. ASP.NET MVC 视图(二)

    ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...

  2. ASP.NET MVC 视图(四)

    ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...

  3. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  4. ASP.NET MVC 视图(五)

    ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...

  5. ASP.NET MVC 视图(三)

    ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...

  6. ASP.NET MVC 视图(一)

    ASP.NET MVC 视图(一) 前言 从本篇开始就进入到了MVC中的视图部分,在前面的一些篇幅中或多或少的对视图和视图中的一些对象的运用进行了描述,不过毕竟不是视图篇幅说的不全面,本篇首先为大家讲 ...

  7. ASP.NET MVC 路由(二)

     ASP.NET MVC路由(二) 前言 在上一篇中,提及了Route.RouteCollection对象的一些信息,以及它们的结构所对应的关系.按照处理流程走下来还有遗留的疑问没有解决这个篇幅就来讲 ...

  8. 为ASP.NET MVC视图输出json

    做个小小练习,为asp.net mvc视图输出json字符串: 创建JsonResult操作: 创建此视图: 浏览结果:

  9. Asp.net MVC 视图引擎

    Asp.net MVC视图引擎有两种: 1.ASPX View Engine 这个做过WebForm的人都清楚 设计目标:一个用于呈现Web Form页面的输出的视图引擎. 2.Razor View ...

  10. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

随机推荐

  1. 【数论】二进制GCD

    二进制GCD     GCD这种通用的算法相信每个OLER都会 ,辗转相除,代码只有四行 : int GCD(int a,int b){ if(b==0) return a; return GCD(b ...

  2. :radio :checkbox

    匹配所有单选按钮   示例 描述: 查找所有单选按钮 HTML 代码: <form> <input type="text" /> <input typ ...

  3. Docker 容器中“TERM environment variable not set.”问题解决

    在查容器内部资源利用情况时候,发现top命令无法使用,报错“TERM environment variable not set.”.从网上找到了解决方案,如下. [root@localhost ~]# ...

  4. VS2012解决方案的设置

    用VS开发项目时,一个解决方案可以包含多个项目,在此我记录一下: 1.首先我新建一个Win32Demo的解决方案: 2.勾选"空项目": 3.新建完之后,会默认生成一个Win32D ...

  5. faster alter table add column

    Create a new table (using the structure of the current table) with the new column(s) included. execu ...

  6. 15 sql base line 工作机制

    <个人Configuration> 正常配置一下, 就OK了, 不用理了, oracle 11g 默认启动 发展: .从Oracle的发展角度来看,估计这种方法是Oracle发展和改进的方 ...

  7. Evolutionary Computing: 4. Review

    Resource:<Introduction to Evolutionary Computing> 1. What is an evolutionary algorithm? There ...

  8. 6/17 Sprint3

    首页改进:

  9. 使用C语言将IE收藏夹生成HTML

    IE收藏夹里收藏的链接很多,查找也不方便,使用C编写一个小工具,可以将收藏夹里的链接文件生成到一个HTML文件上. 源码还有许多地方需要优化,后续我会优化,先分享出来.目的主要是为了练习C语言,这个代 ...

  10. JavaScript类型判断

    几种方法:typeof,instanceof,Object.prototype.toString,constructor,duck type ES6引入了一种新的原始数据类型Symbol,表示独一无二 ...