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. CSS3 笔记一(Rounded Corners/Border Images/Backgrounds)

    CSS3 Rounded Corners The border-radius property is a shorthand property for setting the four border- ...

  2. 给NIOS II CPU增加看门狗定时器并使用

    给NIOS II CPU增加看门狗定时器并使用   配置看门狗定时器: 设置计时溢出时间为1秒 计数器位宽为32位 勾选No Start/Stop control bits 勾选Fixed perio ...

  3. 20145227&20145201 《信息安全系统设计基础》实验一 开发环境的熟悉

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名:李子璇 鄢曼君 学号:20145201 20145227 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...

  4. .getClass();

    Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息.可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得.获得此对象后 ...

  5. Android--菜单详解

    Android中的菜单分为三种,即选项菜单(系统菜单),上下文菜单和弹出式菜单. 选项菜单: 一个activity只有一个选项菜单,选项菜单的创建方式有低版本创建和高版本创建两种.最常用的是干版本创建 ...

  6. Android DiskLruCache 源码解析 硬盘缓存的绝佳方案

    一.概述 依旧是整理东西,所以近期的博客涉及的东西可能会比较老一点,会分析一些经典的框架,我觉得可能也是每个优秀的开发者必须掌握的东西:那么对于Disk Cache,DiskLruCache可以算佼佼 ...

  7. 【leetcode❤python】 190. Reverse Bits

    #-*- coding: UTF-8 -*- class Solution:    # @param n, an integer    # @return an integer    def reve ...

  8. ubuntu 到底是选择32位还是64位?

     ubuntu 到底是选择32位还是64位? 2011-06-03 15:16:31 标签:ubuntu linux 休闲 cpu 职场 原文出处:官方wiki原文作者:授权许可: 创作共用协议Att ...

  9. iOS - Mac Vim 编辑器

    Mac Vim 编辑器 1)vi 文本编辑器 1.打开一个文件:vi 文件名 按住 shift 连按两次 z 键( :q )退出 vi 编辑器 2.vi 两种模式:第一是命令模式(按 esc 进入命令 ...

  10. PyCharm配置GitHub

    原文出处: https://github.com/wssnail/ws96apt/blob/master/weixin/a.py#L21-21打开file,选择settings,找到Version C ...