我正在使用它,一个编辑器模板(位于我的解决方案的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)
如何在视图中只读这个字段
答案 0 :(得分:5)
<%= Html.EditorFor(x => x.ModifiedDate, new { @readonly = "readonly" }) %>
更新:
好的,既然您在此向我发送了示例项目,那么问题就在于:
~/Views/Shared/EditorTempletes
文件夹中存在拼写错误。它应该是~/Views/Shared/EditorTemplates
。您必须将编辑器模板称为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
) %>
答案 1 :(得分:3)
您可以使用:
@Html.DisplayFor()
答案 2 :(得分:2)
使用System.Web.Mvc
命名空间中的[HiddenInput]属性装饰属性。
答案 3 :(得分:0)
我用这种方式显示只读信息:
@Html.DisplayFor(model => model.CadastradoEm, new { @class = "form-control" })
@Html.HiddenFor(model => model.CadastradoEm)
除了显示文字之外,您还需要添加隐藏输入,因为DisplayFor()
没有生成回发的控件
;)