一尘不染

ASP.NET MVC中EditorFor()的HTML属性

html

为什么我不能将html属性传递给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采集。


阅读 728

收藏
2020-05-10

共1个答案

一尘不染

EditorFor与元数据一起使用,因此,如果您想添加html属性,则可以始终这样做。另一种选择是简单地编写自定义模板并使用TextBoxFor

<%= Html.TextBoxFor(model => model.Control.PeriodType, 
    new { disabled = "disabled", @readonly = "readonly" }) %>
2020-05-10