(一)基本写法与Aspx的区别
假设值
Model.Content="<a href='http://demo.tc' >demo小鋪</a>"
item.Key="<span>IsKey</span>"
item.Value="<span>IsValue</span>" Razor与Aspx的区别
Razor | Aspx |
---|---|
程式碼區塊:無輸出 | |
@{ int a = 123; string b = "demoshop"; } | <% int a = 123; string b = "demoshop"; %> |
HTML Encoded:<a href='http://demo.tc' >demo小鋪</a> | |
<div> @Model.Content </div> | <div> <%:Model.Content %> </div> |
HTML Unencoded:demo小鋪 | |
<div> @Html.Raw(Model.Content) </div> | <div> <%=Model.Content %> </div> |
混合程式碼:<span>IsKey</span> | |
@foreach (var item in collection) { <span>@item.Key</span> } | <%foreach (var item in collection) {%> <span><%:item.Key %></span> <%} %> |
混合程式碼:我是純文字 <span>IsValue</span> | |
@foreach (var item in collection) { <text>我是純文字</text> @item.Value } | <%foreach (var item in collection) {%> 我是純文字 <%:item.Key %> <%} %> |
混合程式碼:我是純文字 <span>IsValue</span> | |
@foreach (var item in collection) { @:我是純文字 @item.Value } | <%foreach (var item in collection) {%> 我是純文字 <%:item.Key %> <%} %> |
混合程式碼:目前是第 0. 目前是第 1. 目前是第 2. | |
@for (int i = 0; i < 3; i++) { @:目前是第 @i. } | <%for (int i = 0; i < 3; i++) {%> 目前是第<%=i %>. <%} %> |
三元運算子:<a href='http://demo.tc' >demo小鋪</a> | |
@(Model.Content == "" ? "沒貨" : Model.Content) | <%:Model.Content==""?"沒貨": Model.Content%> |
註解:無輸出 | |
@*你看不到我*@ | <%--你看不到我--%> |
(二)常用的地方
1.@转义
写法:@@
实例:shuxin556@@163.com
2.@注释
写法:@**@
3.取request
例如:@Request.Url
4.@@作用域和Html混合使用
作用域使用{}描述,在作用域内可以直接输出html.
例如:@{
//定义变量i
int i = 1;
<em>12</em>
<br />
}
5.在@作用域中输出内容
写法:@:
例如:
@{
int j = 1;
@:div中直接输出内容<br />
@:<br />
<div>@j=6</div>
@j
<br />
}
6.在@作用域中输出HTML方法1
使用字符串描述输出
例如:
@{
string html = "<b>wo shi html</b>";
@html
}
7.在@作用域中输出HTML方法2
使用HtmlHelper输出
例如:
@{
@Html.Raw(html)
}
8.在@作用域中输出HTML方法3
使用HtmlString类输出
例如:
@{
var html2 = new HtmlString("<b>wo shi html</b>");
@html2
}
9.在@作用域中输出HTML方法4
使用MvcHtmlString类输出
例如:
@{
var html3 = MvcHtmlString.Create("<b>wo shi html</b>");
@html3
}
10.处理泛型<>冲突问题
我们可以使用()把语句括起来
例如:
@(list.ToList<Char>());
11.@数据类型转换
使用AsDecimal()方法转换
例如:
@("123".AsDecimal()+1)
12.@数字类型判断
使用IsInt()方法
例如:
@("123".IsInt()?"是":"否");
13.@bool类型转换
使用AsBool()方法转换
例如:
@("true".AsBool())
14.@bool类型判断
使用IsBool()方法判断
例如:
@("True".IsBool()?"是":"否")
15.日期类型转换
使用AsDateTime()方法转换
例如:
@("2011/4/11".AsDateTime().ToLongDateString())
16.路径转换
使用Href()方法转换
例如:
@Href("~/")