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. wex5 教程 之 图文讲解 登陆,注册,页面跳转

    视频教程地址:http://v.youku.com/v_show/id_XMTc3OTE0Nzg0NA==.html 效果预览: 登陆页面   首页用windowContainer装载 注册页面 登陆 ...

  2. Stylish: http://bbs.csdn.net/topics/

    [id^=google_ads_], [id^=bd_ad_], #cpro_u2392825, [id^=BAIDU_SSP_], .bbs_top_ad, .csdn-toolbar, #topi ...

  3. asp.net 加载xml到menu

    XML File <?xml version="1.0" encoding="utf-8" ?> <Area iAreaID ="0 ...

  4. 关于JQ的$.deferred函数。参考网络文档

    由于jQuery版本问题对Deferred对象的实现有所不同,具体请参照jQuery api:   jQuery.Deferred()基于Promises/A规范实现,因为jQuery本身的设计风格, ...

  5. BooleanToVisibilityConverter.cs

    //---------------------------------------------------------------------------- // // Copyright (C) M ...

  6. [问题2014A12] 复旦高等代数 I(14级)每周一题(第十四教学周)

    [问题2014A12]  设 \(A,B\) 是 \(n\) 阶方阵且满足 \(AB=BA=0\), \(\mathrm{r}(A)=\mathrm{r}(A^2)\), 证明: \[\mathrm{ ...

  7. 利用backtrace和objdump进行分析挂掉的程序

    转自:http://blog.csdn.net/hanchaoman/article/details/5583457 汇编不懂,先把方法记下来. glibc为我们提供了此类能够dump栈内容的函数簇, ...

  8. 18.ssh远程双向无密码登陆

    #ssh远程双向无密码登陆 需求:在192.168.10.100执行ssh 192.168.20.205不需要输入密码直接跳转到205机器 #在192.168.10.100执行命令,我这里使用root ...

  9. ios设备相关

    设备方向 typedef NS_OPTIONS(NSUInteger, UIInterfaceOrientationMask) { UIInterfaceOrientationMaskPortrait ...

  10. 《BI那点儿事》SSRS图表和仪表——雷达图分析三国超一流谋士、统帅数据(图文并茂)

    雷达图分析三国超一流谋士.统帅数据,献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解 建立数据环境: -- 抽取三国超一流谋士TOP 10数据 DECLARE @t1 TA ...