Asp.net MVC 视图(二)
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><script>alert('123')</script></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 视图(二)的更多相关文章
- ASP.NET MVC 视图(二)
ASP.NET MVC 视图(二) 前言 上篇中对于视图引擎只是做了简单的演示,对于真正的理解视图引擎的工作过程可能还有点模糊,本篇将会对由MVC框架提供给我们的Razor视图引擎的整个执行过程做一个 ...
- ASP.NET MVC 视图(四)
ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- ASP.NET MVC 视图(五)
ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...
- ASP.NET MVC 视图(三)
ASP.NET MVC 视图(三) 前言 上篇对于Razor视图引擎和视图的类型做了大概的讲解,想必大家对视图的本身也有所了解,本篇将利用IoC框架对视图的实现进行依赖注入,在此过程过会让大家更了解的 ...
- ASP.NET MVC 视图(一)
ASP.NET MVC 视图(一) 前言 从本篇开始就进入到了MVC中的视图部分,在前面的一些篇幅中或多或少的对视图和视图中的一些对象的运用进行了描述,不过毕竟不是视图篇幅说的不全面,本篇首先为大家讲 ...
- ASP.NET MVC 路由(二)
ASP.NET MVC路由(二) 前言 在上一篇中,提及了Route.RouteCollection对象的一些信息,以及它们的结构所对应的关系.按照处理流程走下来还有遗留的疑问没有解决这个篇幅就来讲 ...
- 为ASP.NET MVC视图输出json
做个小小练习,为asp.net mvc视图输出json字符串: 创建JsonResult操作: 创建此视图: 浏览结果:
- Asp.net MVC 视图引擎
Asp.net MVC视图引擎有两种: 1.ASPX View Engine 这个做过WebForm的人都清楚 设计目标:一个用于呈现Web Form页面的输出的视图引擎. 2.Razor View ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
随机推荐
- 简单破解.net(C#)程序
一直在用makedown2(free版),每当打开多个页面,就会提示升级为pro,还要注册码激活什么的.就有了破解的想法.以前也弄过一个小程序的破解,所以还算有些经验. 1. ildasm 用来将ma ...
- [已解决] windows 下 git 免输密码
在 .git/config 里面加上这句话即 [credential] helper = store 原文地址:http://www.cnblogs.com/gifisan/p/5829578.htm ...
- Oracle 流复制实践笔记
最近因为业务需求,需要在两个数据库之间做双向实时同步,遂实践了一把Oracle的流复制,遇到了很多疑难问题,最终也貌似成功,现记录如下. 我是使用OEM来实现流复制的. 10.进行流复制的两个数据库的 ...
- Java堆和栈详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
- java正则表达式的使用
姿势: Pattern pattern = Pattern.compile("^Java.*");Matcher matcher = pattern.matcher("J ...
- [LeetCode_1] twoSum
LeetCode: 1. twoSum 题目描述 Given an array of integers, return indices of the two numbers such that the ...
- GMF:如何让网格显示在background,而不是foreground
前言 很久没写文章了,准备写一系列关于Eclipse RCP /Plugin的文章. 这些文章都是trouble shooting性质的,不准备写的很细,当你碰到这样的问题,google到时,能帮你把 ...
- hadoop运维经验
0.优化:http://dongxicheng.org/mapreduce/hadoop-optimization-0/ http://dongxicheng.org/mapreduce/hadoop ...
- JavaGUI——设置框架背景颜色和按钮颜色
import java.awt.Color; import javax.swing.*; public class MyDraw { public static void main(String[] ...
- How To Use FETCH_RECORDS In Oracle Forms
When called from an On-Fetch trigger, initiates the default Form Builder processing for fetching rec ...