11
此代码,在Razor视图:如果有打开的`<table>`标签,Razor`if`不会注册关闭`}`?
if (true)
{
<table>
<tbody>
}
...
if (true)
{
</tbody>
</table>
}
不运行。它声称第一个if()
声明中没有关闭}
,我猜这是因为<table>
标记。
有没有办法可以解决这个问题,有条件地插入我的<table>
标签?
如果在一个if语句中包含整个“
我的代码块位于'foreach(){}'内,表格通过表值(表示实体类型)来分隔我的实体,而且我只希望每个类型都有一个表。 'if(){}'检查已更改的表类型(因为实体列表是按该类型排序的)。 – Kehlan
回答
尝试用前面加上标签
@:
:来源
2013-07-01 20:19:56
+1这实际上看起来比我的答案好。 – Fenton
这绝对是最好的解决方案。谢谢! – Kehlan
为什么剃须刀自动格式将结束标签放在一个新的线上? –
尝试通过封闭在一个@ {}语句如果块,或者如果以@前面加上,使得其出现使用剃刀代码块作为@if:
http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
来源
2013-07-01 20:18:20 Haney
Razor确实希望匹配的结束标签默认处于语句内部。
您可以使用特殊
<text>
标签,以帮助剃刀出来:来源
2013-07-01 20:21:02 Fenton
剃刀仍然抱怨,因为它承认'
我使用VS2012,MVC4,它适用于我。你用同样的东西吗?无论如何,你仍然会收到关于结束标签的警告,这就是为什么我更喜欢D斯坦利的答案。 – Fenton
是的,我想这并不妨碍Razor识别'}',但正如你所说,仍然有警告。 – StriplingWarrior
您可以将它作为字符串,那么他们不会解析为html和不符合语法地干扰:
来源
2013-07-01 20:22:32 Guffa
相关问题