我试图在通过@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助手不起作用。
如何在参数列表中编写禁用内容,以便禁用时不显示它是否应该被禁用?
答案 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)