为什么我不能将html属性传递给EditorFor()?例如;
EditorFor()
<%= Html.EditorFor(model => model.Control.PeriodType, new { disabled = "disabled", readonly = "readonly" }) %>
我不想使用元数据
更新 :解决方案是从视图中调用此方法:
<%=Html.EditorFor( model => model.Control.PeriodEndDate, new {Modifiable=model.Control.PeriodEndDateModifiable})%>
并ViewData["Modifiable"]在我的自定义EditorTemplates/String.ascx中使用,其中我具有一些视图逻辑,该逻辑确定是否向输入中添加只读和/或禁用属性。传入的匿名对象EditorFor()是一个名为的参数additionalViewData,其属性将传递给该模板中的编辑器模板。ViewData采集。
ViewData["Modifiable"]
additionalViewData
ViewData
EditorFor与元数据一起使用,因此,如果您想添加html属性,则可以始终这样做。另一种选择是简单地编写自定义模板并使用TextBoxFor:
EditorFor
TextBoxFor
<%= Html.TextBoxFor(model => model.Control.PeriodType, new { disabled = "disabled", @readonly = "readonly" }) %>