【问题标题】:Razor view- C# - Disable read only textbox's [duplicate]Razor view - C# - 禁用只读文本框的[重复]
【发布时间】:2016-02-24 21:06:11
【问题描述】:

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

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

我也试过了:

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

知道我做错了什么吗?

【问题讨论】:

  • 您阅读我的问题了吗?我已经试过了
  • 你没有具体说明你已经看过哪些答案,我无法知道你之前是否看过。
  • 对不起,这是我的错误。谢谢指出
  • 投票结束,因为期望的行为不清楚。

标签: c# razor


【解决方案1】:

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

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

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

【讨论】:

  • 我要试试!知道我是否可以在真假条件中添加类似的参数吗?没有提到这两个
  • 只要结果是属性的有效集合,您就应该能够以这种方式构造它。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    尝试将三元运算用括号括起来

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多