我想在编辑页面中用EditorFor制作readOnly。
我尝试将只读和禁用设置为:
<div class="editor-field">
@Html.EditorFor(model => model.userName, new { disabled = "disabled", @readonly = "readonly" })
</div>
然而,它不起作用。如何禁用该字段的编辑?
谢谢。
发布于 2012-04-12 02:13:36
html帮助器没有接受EditorFor属性的重载。在这种情况下,您需要使用更具体的内容,如TextBoxFor:
<div class="editor-field">
@Html.TextBoxFor(model => model.userName, new
{ disabled = "disabled", @readonly = "readonly" })
</div>
您仍然可以使用EditorFor,但您需要在自定义EditorTemplate中包含TextBoxFor:
public class MyModel
{
[UIHint("userName")]
public string userName { ;get; set; }
}
然后,在Views/Shared/EditorTemplates文件夹中,创建一个文件userName.cshtml。在该文件中,放入以下内容:
@model string
@Html.TextBoxFor(m => m, new { disabled = "disabled", @readonly = "readonly" })
发布于 2015-11-14 01:12:50
在MVC4及更高版本中支持此代码
@Html.EditorFor(model => model.userName, new { htmlAttributes = new { @class = "form-control", disabled = "disabled", @readonly = "readonly" } })
发布于 2013-05-18 00:14:19
如果你想知道,如果你不想让EditoFor是可编辑的,为什么还要使用它,我有一个例子。
我在我的模型里有这个。
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0: dd/MM/yyyy}")]
public DateTime issueDate { get; set; }
当您想要显示该格式时,它唯一的工作方式是使用EditorFor,但我为该“输入”提供了一个jquery datepicker,因此它必须是只读的,以避免用户写下错误的日期。
为了让它以我想要的方式工作,我把它放在视图中...
@Html.EditorFor(m => m.issueDate, new{ @class="inp", @style="width:200px", @MaxLength = "200"})
在我的ready函数中...
$('#issueDate').prop('readOnly', true);
我希望这能对外面的人有所帮助。对不起,我的英语
https://stackoverflow.com/questions/10109185
复制相似问题