MVC Razor只读TextBoxFor

时间:2012-06-29 05:25:42

标签: asp.net-mvc-3 razor

在MVC 3 Razor项目中,我在ViewModel中定义了DisplayFormat来格式化DateTime属性

[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "Posted Date")]
public DateTime PostedDate { get; set; }

我需要在视图中将字段设为只读

@Html.TextBoxFor(model => model.PostedDate, new { @readonly = "readonly" })

但是在TextBoxFor中显示日期时,它不适用于DisplayFormat。如果我将TextBoxFor更改为EditorFor DisplayFormat,但无法应用readonly CSS属性。

如何应用日期格式&将文本框设为只读?

1 个答案:

答案 0 :(得分:2)

你仍然可以使用编辑器来进行渲染的编辑器我相信根据你的情况它应该仍然渲染到文本框后它呈现你可以使用一个简单的jquery函数来向渲染文本添加一个只读属性-box

$("#PostedDate").attr("readonly", "readonly");

不确定它是否是最好的解决方案,但你可以尝试一下