是否有一种更简洁的方法可以在剃须刀中使用@variable

时间:2011-02-21 12:38:23

标签: asp.net-mvc-3 razor

我在MVC3中有一个剃刀显示模板用于地址。以下是我用于地址一行的编码示例:

@Model.City<text>,</text>

当我将逗号直接放在变量名后面时,会产生语法错误。添加&lt; text&gt;逗号周围的标记修复了问题,但是当大多数剃刀代码如此简洁明了时,它看起来有点乱。

有更简洁,更简洁的方法吗?

编辑:这段代码位于if块内。我没有意识到,但事实证明这会影响razar解析东西的方式。

1 个答案:

答案 0 :(得分:12)

您可以将表达式包装在括号中,以明确告诉解析器它的结束位置:

@(Model.City).

或者,您可以使用两个表达式:

@Model.City@('.')

<击>


编辑:我误解了你的情况 在代码块(@if@for@{ ... })内,Razor解析器需要代码,而不是标记(或文本)。

如果您添加了HTML标记或<text>标记,则会知道您正在为其添加标记。
但是,任意文本(例如,)都被假定为C#源。

而不是使用<text>标记告诉解析器您正在给予标记,you should use @:

@Model.City@:,