不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
ASP.NET MVC3 Razor视图引擎基本语法学习小结
编辑:dnawo 日期:2012-08-13
在学习Razor视图引擎基本语法过程中,我习惯拿ASPX视图引擎基本语法来比较,这样能更快的掌握Razor。先来看一个简单的ASPX例子:
转换为Razor:
可见,Razor用@代替了<%和%>,在输出单个变量值时,显得更简单。
再来看一个ASPX的例子:
转换为Razor:
从例子中可以看出,Razor比ASPX输的代码量少了,并且更智能,能自动分辨出C#代码和html。
独特的<text>标签
在第二个例子中,<span>标签没多大用处,我们它去掉吧:
为什么会出错?原因是去掉<span>后,智能的Razor将这行理解成是一个C#语句,所以提示上下文中没有声明number变量。怎么解决呢?<text>出场了:
这感觉<text>和<span>作用一样,有什么区别吗?<text>是Razor新增的一个独特的标签,它用来标识一个文本区块,并且它不会在客户端显示出来,它还有一种简写方法:
@转义
@在Razor视图引擎中如此重要,如果要在WEB页面中输出一个Email地址怎么办呢?不用太担心,大部分情况下Razor会智能的区分:
只要@前边不是空格和其他符号,Razor都会将它直接显示出来。
这终究让人不太放心,总有不小心加了空格的时候,程序就得出错了,显然微软考虑到了这个问题,可连续输入两个@进行转义保证可万无一失:
还有问题,再看一个例子,生成10个用户名:
按上边说的,这边@不会解析,但我们是希望Razor去解析它,怎么办呢?这时用中括号来解决就可以了:
复制内容到剪贴板 程序代码
<%
int i = 100;
string str = "mzwu.com";
%>
i=<% =i %>, str=<% =str %>
int i = 100;
string str = "mzwu.com";
%>
i=<% =i %>, str=<% =str %>
转换为Razor:
复制内容到剪贴板 程序代码
@{
int i = 100;
string str = "mzwu.com";
}
i=@i,str=@str
int i = 100;
string str = "mzwu.com";
}
i=@i,str=@str
可见,Razor用@代替了<%和%>,在输出单个变量值时,显得更简单。
再来看一个ASPX的例子:
复制内容到剪贴板 程序代码
<%for (int counter = 0; counter < 10; counter++){%>
<span>number = <% =counter %>;</span>
<%}%>
<span>number = <% =counter %>;</span>
<%}%>
转换为Razor:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
<span>number = @counter;</span>
}
{
<span>number = @counter;</span>
}
从例子中可以看出,Razor比ASPX输的代码量少了,并且更智能,能自动分辨出C#代码和html。
独特的<text>标签
在第二个例子中,<span>标签没多大用处,我们它去掉吧:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
number = @counter;
}
{
number = @counter;
}
为什么会出错?原因是去掉<span>后,智能的Razor将这行理解成是一个C#语句,所以提示上下文中没有声明number变量。怎么解决呢?<text>出场了:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
<text>number = @counter;</text>
}
{
<text>number = @counter;</text>
}
这感觉<text>和<span>作用一样,有什么区别吗?<text>是Razor新增的一个独特的标签,它用来标识一个文本区块,并且它不会在客户端显示出来,它还有一种简写方法:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
@:number = @counter;
}
{
@:number = @counter;
}
@转义
@在Razor视图引擎中如此重要,如果要在WEB页面中输出一个Email地址怎么办呢?不用太担心,大部分情况下Razor会智能的区分:
引用内容
× wemaster@mzwu.com
× 123@456
√ number=@counter
√ number @counter
× 123@456
√ number=@counter
√ number @counter
只要@前边不是空格和其他符号,Razor都会将它直接显示出来。
这终究让人不太放心,总有不小心加了空格的时候,程序就得出错了,显然微软考虑到了这个问题,可连续输入两个@进行转义保证可万无一失:
引用内容
wemaster @@mzwu.com
还有问题,再看一个例子,生成10个用户名:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
<text>user@counter;</text>
}
{
<text>user@counter;</text>
}
按上边说的,这边@不会解析,但我们是希望Razor去解析它,怎么办呢?这时用中括号来解决就可以了:
复制内容到剪贴板 程序代码
@for (int counter = 0; counter < 10; counter++)
{
<text>user@(counter);</text>
}
{
<text>user@(counter);</text>
}
上一篇: ASP.NET MVC3 + Entity Framework表名变为复数形式解决方法
下一篇: ASP.NET MVC3 实现用户登录验证
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
下一篇: ASP.NET MVC3 实现用户登录验证
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 7480
发表评论
请登录后再发表评论!