011. razor与aspx的区别以及用法

非原创, 摘录网上的文章

页面后缀:

aspx:

index.aspx

Razor:

index.cshtml

使用C#中的类和属性

aspx
< %: DateTime.Now %>

razor:
@DateTime.Now

页面强类型Model

aspx:

Razor:

@model MvcCRUDDeom.Models.OrderInfo

执行语句块:

@{

int i= 0;

<br/>

i = i+10;

}

<%for(int i = 0 ; i<10; i++)%>

<span><%= i %></span>

<%}%>

 

@for (var i = 0; i < 10; i++)

{

    <span>@i </span>

}

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

posted on 2017-02-18 15:25  印子  阅读(268)  评论(0编辑  收藏  举报

导航