MVC4 razor与aspx的区别以及用法

Model要重,Controller要轻,View要够笨,mvc不希望在开发view时还需要判断过多的与view无关的技术,所以要尽可能的保持view逻辑简单。(以下中有出现代码的地方用了什么尖括号百分号标签这些字样是为了防止保存时被新浪博客给处理掉)

如果view选择aspx后缀的话
页面上都会出现很多夹杂后台代码与html的情况,而先前使用的“<尖括号%百分号%尖括号>”这种古老表示法会让html标签与.net代码区块混杂在一起,这样当页面变的复杂时,混合类代码的可读性就大大降低。

在mvc3之后view就引入了Razor语法,用俗称的小老鼠“@”符号来代表代码片段,搭配vs的语法高亮显示,razor语法也让整个view页面内的html标签与服务器代码结合的相当漂亮。
在mvc2.5当中如果要在页面上显示当前时间:
<尖括号%: DateTime.Now%百分号>

若使用razor语法,则是
@DateTime.Now

Razor并不是一个代码语言,只是一种用在view页面的代码区块撰写风格。
如果是c#来编写razor页面,后缀是cshtml
如果是vb.net来编写,后缀则是vbhtml

1,Razor基本语法
在页面上输出单一变量时,只要在c#语句前加上@符号
eg :
<标签>
现在时间:@DateTime.Now
</标签>
注意:在输出单一变量时不需要加上分号结尾,但是如果再页面中输出一段空白子元或者运算子的结果时,则需要在前后加上一个小括号
eg:
<标签>
会员名称:@(user.Identity.Name+Model.MemberLevel)
状态:@(ViewBag.IsEnabled?"启用":“停用”)
</标签>

在页面上执行多行代码时,必须在前后加上一个大括号
eg
@
{
var a=1;
var b="aaa";
}
注意:@{}之间属于一个c#代码区段,在撰写代码时必须符合c#语言规范,也就是必须分号结尾。
如果要在多行后台代码的razor语法中插入html或者其他内容,必须在每一行最前面加上一个"@:"符号,在这个符号的这行代码里,也可以再加上其他razor变量
eg:
@
{
var name="aa";
@:您好, 我是@name
}

razar检视页面中表示注释,用“@*”与“*@”来当注释头尾,就不写范例了。
如果要在razor页面输出“@”符号,可以用@符号作为跳脱子元,比如@@aaa,输出@aaa

2,razor与html混合输出
if语句范例
@if(ViewBag.IsEnabled){
@:启用
}else{
@:停用
}
如果再if与else代码区块里放置大量的html标签,每行前面都要加"@:"有点麻烦,只要在代码区块的前后加上一组html标签就可以,(纯文字在razor的代码里会自动被视为c#语句,所以必须加标签)
@if(ViewBag.IsEnabled){
<标签>启用</标签>
}else{
<标签>停用</标签>
}

vs工具中的高亮提示,razor中c#代码是显示淡蓝色,如果是白底色的话就代表是razor意外的纯文字,razor会很智能的自动辨别是c#还是html,但是如果我们不想在这个区段出现任何的标签怎么办呢,在razor中使用特殊的<标签text>来代替这个html标签,最后输出到浏览器时就不会出现text标签,当然也可以在多行c#代码区段使用"@:" 或者text作为HTML与razor语法之间的切换

时间: 2024-10-18 08:21:43

MVC4 razor与aspx的区别以及用法的相关文章

.NET中的三种Timer的区别和用法(转)

最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器.所以正好研究研究.这3个定时器分别是:  //1.实现按用户定义的时间间隔引发事件的计时器.此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用.  System.Windows.Forms.Timer  // 2.提供以指定的时间间隔执行方法的机制.无法继承此类.  System.Threading.Timer  //3.在应用程序中生成定期事件.  System.Timers.Timer  这三个定时器位

2014-07-29 浅谈MVC框架中Razor与ASPX视图引擎

今天是在吾索实习的第15天.随着准备工作的完善,我们小组将逐步开始手机端BBS的开发,而且我们将计划使用MVC框架进行该系统的开发.虽然我们对MVC框架并不是非常熟悉,或许这会降低我们开发该系统的效率,但是我们可以通过边学边做的方式来实现其开发的.这不仅便于我们日后对系统的管理与维护,而且还给我们带来一个学习的动力与实践的地方. 但我们在创建一个基于MVC框架的项目时,就遇到一些问题了.那就是MVC的视图引擎是有两种的,一种是Razor,会以cshtml后缀的文件作为视图文件:另一种是ASPX,

.NET MVC 两种视图引擎(Razor、Aspx)

ASPX 优点: 通过上面小小的对比,不难看出,与ASP.NET MVC紧密集成,对于以往ASP.NET开发人员有更好体验.其实它还有其他几优点: ●智能感应 ●能选择其它语言的 CodeDom provider (例如: C#, VB.NET, F#, Boo, Nemerle) ●立即编译或预编译的views 缺点: 当然也有缺点了: ●在Asp.net MVC中容易与经典的Asp.net模式混淆起来,并且Asp.net MVC已不再支持它们. (例如: ViewState PostBack

div与span区别及用法

DIV与SPAN区别及div与san用法篇 接下来了解在div+css开发的时候在html网页制作,特别是标签运用中div和span的区别及用法.新手在使用web标准(div css)开发网页的时候,遇到第一个问题是div与span有什么区别,什么时候用div,什么时候用span标签. 目录 特点与区别 小结 知识扩展 案例效果演示 一.DIV与SPAN的区别与特点   -   TOP 以下是在没有对开发网页页面设置css样式时候情况下,系统默认情况下的介绍div与span区别div占用的位置是

Struts2中的ActionContext和ServletActionContext的区别和用法

今天学习Struts2的时候遇到"访问和添加属性"的问题,然后就学到了ActionContext和ServletActionContext之间的区别和用法,然后又在网上搜了下别人的文章大致了解了一下,就想着总结一下. 参考文章1:http://www.cnblogs.com/tanglin_boy/archive/2010/01/18/1650871.html 参考文章2:http://blog.csdn.net/woshixuye/article/details/8172777 相信

Linux 环境下/etc/profile和/etc/profile.d 的区别和用法

Linux 环境下/etc/profile和/etc/profile.d 的区别和用法 1. 两个文件都是设置文件的,/etc/profile是永久性的,是全局变量,/etc/profile.d/设置所有用户生效. 2. /etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的即可,不用像/etc/profile需要改动此文件. CentOS 中每个用户都要指定各自的,其中包括可执行的 path路径,这些路径决定了每个用户在执行

JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法

JDBC中PreparedStatement接口提供的execute.executeQuery和executeUpdate之间的区别及用法 (2012-08-27 09:36:18) 转载▼ 标签: statement execute executequery executeupdate 杂谈 分类: DataBase区 PreparedStatement接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语

css中字体单位px,pt,em ,rem,百分比之间的区别和用法

css中字体单位px,pt,em ,rem,百分比之间的区别和用法 px 即像素,一般国内网站使用较多,默认大小是16px; pt 印刷行业常用单位 em  相对单位,相对父元素属性的单位 ,一般用于移动端布局 rem  结合相对定位和绝对定位的优势,相对根元素html,想要修改字体大小,只要修改html的大小就可以了 转换公式: pt=px乘以3/4 倍数em=倍数x16px 注意:1em=16px.那么12px=0.75em,10px=0.625em.   1.em的用法 在代码重写的过程中

made?of、made?by、made?from、?made?in的区别及其用法

made of.made by.made from. made in的区别及其用法. 答: (1) be made of 和be made from 都表示"由??制成",主语为制成品,但前者表示制成成品后,仍可看出原材料是什么,保留原材料的质和形状,制作过程仅发生物理变化:后者表示制成的东西完全失去了原材料的外形或特征,或原材料在制作过程中发生化学变化,在成品中已无法辨认.如: The kite is made of paper风筝是用纸做的. The paper is made f