剃刀视图 - C# - 禁用只读文本框

本文关键字:只读 文本 视图 剃刀 | 更新日期: 2023-09-27 18:36:01

我尝试了在stackoverflow上发布的几个答案。但是,以下内容似乎不起作用:

@Html.TextArea("Comments", Model.Comments, Model.ReadOnly ? new { @disabled = "disabled"} : null)

我也试过:

@Html.TextArea("Comments", Model.Comments, Model.ReadOnly ? new { disabled = "disabled"} : null)

知道我做错了什么吗?

剃刀视图 - C# - 禁用只读文本框

我会使用自定义变量来设置它。我不认为条件在 HtmlHelper 的参数中是可以接受的。

@{
    var htmlAttributes = Model.ReadOnly ? new { disabled = "disabled" } : null;
}
@Html.TextArea("Comments", Model.Comments, htmlAttributes)

我不认为MVC喜欢这里的null。您需要作为第三个参数(它需要object)是一个默认的空匿名实例,而不是null

Model.ReadOnly ? (object)new { disabled = "disabled" } : (object)new { }

尝试将三元运算包装在括号中

@Html.TextArea("Comments", Model.Comments, (Model.ReadOnly ? new { @disabled = "disabled"} : null) )