Razor view- C# - 禁用只读文本框

时间:2016-02-24 21:06:12

标签: c# razor

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

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

我也尝试过:

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

知道我做错了什么吗?

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

@{
    var htmlAttributes = Model.ReadOnly ? new { disabled = "disabled" } : null;
}

@Html.TextArea("Comments", Model.Comments, htmlAttributes)

答案 2 :(得分:0)

尝试在括号中包装三元操作

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