带双引号的asp.net mvc razor字符串

时间:2014-09-16 08:07:11

标签: asp.net-mvc string razor

我正在尝试使用带双引号的字符串,但无法使其正常工作

@{
    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属性的双引号。

2 个答案:

答案 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.IsApplicablefalse,则输出为:

<div>Content</div>

答案 1 :(得分:0)

罗斯的回答更加优雅。但是,保留原始代码的行,您可以执行以下操作:

disableAttr = "class='disableItem'" +" title='"+ disableMessage +"'";

这将在disableAttr

中呈现以下文字
class='disableItem' title='your_message_here';