使用三元运算符输出包含Razor空格的字符串

时间:2012-05-16 15:49:00

标签: asp.net razor ternary-operator

我正在尝试在Razor中使用三元运算符,类似于this question,但我想输出的内容包含空格。这段代码

@(selectedGoal == null ? "" : "value=" + selectedGoal.Name)

应该产生

value="Goal 3"

由于selectedGoal.Name的值为“目标3”。相反,我得到

value="Goal" 3

这不好。我尝试了一系列不同的转义引号组合,@符号和没有@符号,我只是不能让它工作,即。

@(selectedGoal == null ? "" : "value=" + "selectedGoal.Name")
@(selectedGoal == null ? "" : "value=@selectedGoal.Name")

然后我得到像

这样的东西
value="selectedGoal.Name"

任何人都知道应该怎么做?

2 个答案:

答案 0 :(得分:10)

您的value属性缺少自己的引号,因此它们会在空格之前自动添加。尝试在表达式之外移动value

value="@(selectedGoal == null ? "" : selectedGoal.Name)"

答案 1 :(得分:0)

怎么样?
@(selectedGoal == null ? "" : "value=\"" + selectedGoal.Name + \")

或者您可以尝试使用我的方法将它们直接渲染为HTML块 Html literal in Razor ternary expression