您的位置:首页 > 编程语言 > PHP开发

爱上MVC~Razor引擎时,在遍历中巧用Output.Write方法

2013-01-18 15:54 246 查看
回到目录

在Razor引擎中,对于在表格中进行遍历时,一般会这样写

<table border="1">
@{
for (var i = 0; i < 10; i++)
{
<tr>
<td>
@i
</td>
</tr>
}
}
</table>


这是没有问题的,但如果你的元素i,希望在一行显示2列,你应该如何去做,下面的代码是不被razor接受的

<table border="1">
@{
for (var i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
<tr>
}
<td>
@i
</td>
if(i%2!=0){
</tr>
}
}
}
</table>


这种写法在运行时会抛出异常的,因为razor特有的对标记的智能识别,省去了<%%>这种结尾标记,所以上面的写法对于razor是不能接受的,我

们需要把代码修改一下,把<tr>标记写在程序里,代码如下:

<table border="1">
@{
for (var i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
Output.Write("<tr>");
}
<td>
@i
</td>
if (i % 2 != 0)
{
Output.Write("</tr>");
}
}
}
</table>


注意,我们在输出时没有用Write,也没有用Response.Write,因为这两种输出都不能在原位置进行输出,而如果希望在原位置输出指定字符,需要

使用Output对象的Write方法,结果如下:



感谢阅读!

回到目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: