我正在尝试使用带双引号的字符串,但无法使其正常工作
@{
string disableMessage = "";
var disableAttr = "";
if (ViewBag.IsApplicable)
{
disableMessage = "You dont have permission to add new Item.";
disableAttr = "class=" + "disableItem" +" title="+"\""+ disableMessage +"\"";
}
}
预期:disableAttr为
class=disableItem title="You dont have permission to add new demand."
我很高兴获得title属性的双引号。
答案 0 :(得分:4)
为什么不分别处理这两个属性:
@{
string disableTitle = null;
string disableClass = null;
if (ViewBag.IsApplicable)
{
disableTitle = "You dont have permission to add new Item.";
disableClass = "disableItem";
}
}
<div class="@disableClass" title="@disableTitle">Content</div>
请注意,Razor V2(在MVC4 +中)具有“条件属性”功能。当属性值为null时,Razor将不会为该属性输出任何内容。因此,在上面的示例中,如果ViewBag.IsApplicable
为false
,则输出为:
<div>Content</div>
答案 1 :(得分:0)
罗斯的回答更加优雅。但是,保留原始代码的行,您可以执行以下操作:
disableAttr = "class='disableItem'" +" title='"+ disableMessage +"'";
这将在disableAttr
:
class='disableItem' title='your_message_here';