使用razor @html帮助器

时间:2017-08-10 21:53:37

标签: html asp.net-mvc razor

我试图在通过@html辅助函数生成的html中添加一个禁用属性,但似乎无法在html帮助器的attrib参数中运行。我下面的内容仍然会为html编写禁用...但我无法将其删除,因为帮助程序无法正常工作。

我定义了一个变量:

@{ var displayItem = (Model.TypeId == 100) }

@Html.TextBox("listitem", "", new {@class = "form-control", @disabled = (@displayItem ? "" : "disabled")})

但是因为我必须列出参数@disabled,它会产生这样的html:

<input class="form-control"  disabled="" id="listitem" name="listitem"  type="text" value="" />

因为列出了禁用,它会禁用输入。但除非我给它一个参数名称,否则html助手不起作用。

如何在参数列表中编写禁用内容,以便禁用时不显示它是否应该被禁用?

1 个答案:

答案 0 :(得分:1)

您还可以使用Dictionary并将其传递给html helper:

@{
    var attributes = new Dictionary<string, object>
    {
        { "class", "form-control" }
    };

    if (Model.TypeId == 100)
    {
        attributes.Add("disabled", "disabled");
    }
}

@Html.TextBox("listitem", "", attributes)