Asp.net mvc 3 在razor中有没有更简洁的方法在@变量后面加逗号

Asp.net mvc 3 在razor中有没有更简洁的方法在@变量后面加逗号,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我在MVC3中有一个地址的razor显示模板。下面是我对一行地址使用的编码示例: @Model.City<text>,</text> @Model.City, 当我将逗号直接放在变量名之后时,会产生语法错误。在逗号周围添加标记可以解决这个问题,但是当大多数razor代码都非常简洁整洁时,它看起来有点混乱 有没有更简洁、更简洁的方法 编辑:这段代码位于if块内。我没有意识到,但事实证明这会影响razar解析东西的方式。您可以将表达式括在括号中,明确告诉解析器它的结束位置

我在MVC3中有一个地址的razor显示模板。下面是我对一行地址使用的编码示例:

@Model.City<text>,</text>
@Model.City,
当我将逗号直接放在变量名之后时,会产生语法错误。在逗号周围添加标记可以解决这个问题,但是当大多数razor代码都非常简洁整洁时,它看起来有点混乱

有没有更简洁、更简洁的方法

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

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

@(Model.City).
或者,您可以使用两个表达式:

@Model.City@('.')


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

如果您放入HTML标记或
标记,它将知道您正在给它添加标记。
但是,任意文本,如
,被假定为C源

而不是使用
标记告诉解析器您正在进行标记


接近。我发现这个@Model.City@(“,”)有效,但我也发现只有当它在if块中时才有这个问题。剃须刀有时很锋利。谢谢你的帮助。@Richard:我误解了。请参阅我的编辑。我回答的第一部分只适用于
。不,这是我的错。没有意识到if块让事情变得不同。新版本的效果很好。剃须刀有时是如此的聪明,以至于很难判断它什么时候不能达到你们的期望。
@Model.City@:,