asp.net - 使用三元运算符在Razor中输出包含空格的字符串

标签 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"

有人知道该怎么做吗?

最佳答案

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

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

关于asp.net - 使用三元运算符在Razor中输出包含空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10622099/

相关文章:

c# - 检查整数然后返回字符串

java - 使用 Java 逻辑三元运算符比较三个数字?

c - 为什么这个程序输出8?

c# - ASP.NET 应用程序体系结构

c# - 如何在 SQL Server 2012 中加密某些行的某些列

c# - 如何使用@Ko.Html.Button 将模型属性值发送到 K-MVC 中的 Controller 方法

javascript - 使用 JavaScript 获取 @Html.HiddenFor VALUE?

c# - 发布大文件

c# - 在asp.net c#中动态填充 <img src ="?">

asp.net-mvc-3 - 如何在MVC 3 RAZOR中动态设置图像路径