我正在尝试在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"
任何人都知道应该怎么做?
答案 0 :(得分:10)
您的value属性缺少自己的引号,因此它们会在空格之前自动添加。尝试在表达式之外移动value
。
value="@(selectedGoal == null ? "" : selectedGoal.Name)"
答案 1 :(得分:0)
怎么样?
@(selectedGoal == null ? "" : "value=\"" + selectedGoal.Name + \")
或者您可以尝试使用我的方法将它们直接渲染为HTML块 Html literal in Razor ternary expression