我使用以下方法创建表单控件:
@Html.DropDownList("FK_CompID", null, htmlAttributes: new { @class = "form-control", @readonly = "readonly"})
但是当我需要有条件地进行它是否只读时我将删除该属性,
有没有办法像这样处理它:
@Html.DropDownList("FK_CompID", null, htmlAttributes: new { @class = "form-control", @readonly = null})
并且不应该添加到元素?
答案 0 :(得分:0)
您需要根据某些属性构建一个定义html属性的对象,然后在DropDownList()
方法中使用它。假设您的模型包含属性bool IsReadOnly
,那么
@{
var attributes = Model.IsReadOnly ?
(object)new { @class = "form-control", readonly = "readonly" } :
(object)new { @class = "form-control"};
}
@Html.DropDownList("FK_CompID", null, attributes)
答案 1 :(得分:0)
我使用@ Html.EditorFor()和htmlAttributes来完成这项工作。
您可以将HTML属性设置如下
@Html.EditorFor(modelItem => Model.item, new { name ="name", htmlAttributes = new { @readonly = "readonly" } })
这对我来说设置了一个可排序的表来使编辑器字段只读。