在mvc3中将Html.Editorfor字段只读

TJK*_*TJK 3 editorfor asp.net-mvc-3

我正在使用这个,一个编辑器模板(位于我的解决方案中的Shared\EditorTemplates文件夹中)

  <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
  <%=Html.TextBox("", (Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : string.Empty), ViewData )%>
Run Code Online (Sandbox Code Playgroud)

这在我看来

  @Html.EditorFor(model => model.ModifiedDate)
Run Code Online (Sandbox Code Playgroud)

如何在视图中只读这个字段

Dar*_*rov 5

<%= Html.EditorFor(x => x.ModifiedDate, new { @readonly = "readonly" }) %>
Run Code Online (Sandbox Code Playgroud)

更新:

好了,既然你在这里发给我示例项目的问题是:

  1. 您在~/Views/Shared/EditorTempletes文件夹中有拼写错误.它应该是~/Views/Shared/EditorTemplates.
  2. 您必须调用编辑器模板DateTime.ascx而不是DateTime.aspx.因此,标题必须如下所示(使用<%@ Control ...而不是<%@ Page ...):

    <%@ Control 
        Language="C#" 
        Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" 
    %>
    <%= Html.TextBox(
        "", 
        (Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : string.Empty), 
        ViewData
    ) %>
    
    Run Code Online (Sandbox Code Playgroud)