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 )%>

这在我看来

  @Html.EditorFor(model => model.ModifiedDate)

如何使该字段在视图中只读

4

4 回答 4

5
<%= Html.EditorFor(x => x.ModifiedDate, new { @readonly = "readonly" }) %>

更新:

好的,既然您向我发送了示例项目,这里的问题是:

  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
    ) %>
    
于 2011-09-18T08:25:48.567 回答
3

您可以使用:

@Html.DisplayFor()
于 2013-03-26T22:15:20.053 回答
2

使用命名空间中的 [HiddenInput] 属性装饰属性System.Web.Mvc

于 2012-05-17T14:01:53.013 回答
0

我用这种方式显示只读信息:

@Html.DisplayFor(model => model.CadastradoEm, new { @class = "form-control" })
@Html.HiddenFor(model => model.CadastradoEm)

除了显示文本之外,您还需要包含一个隐藏的输入DisplayFor(),因为不会生成回发的控件;)

于 2017-01-19T10:37:59.860 回答