首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据Html.TextBoxFor的条件设置禁用属性

根据Html.TextBoxFor的条件设置禁用属性
EN

Stack Overflow用户
提问于 2011-07-12 14:08:49
回答 11查看 147.6K关注 0票数 83

我想根据asp.net MVC中的Html.TextBoxFor条件设置disable属性,如下所示

代码语言:javascript
复制
@Html.TextBoxFor(model => model.ExpireDate, new { style = "width: 70px;", maxlength = "10", id = "expire-date" disabled = (Model.ExpireDate == null ? "disable" : "") })

这个帮助器有两个输出disabled="disabled“或disabled="”。这两个主题都会禁用文本框。

如果Model.ExpireDate ==为空,我想禁用textbox,否则我想启用它

EN

回答 11

Stack Overflow用户

发布于 2015-03-25 13:18:33

实际上,内部行为是将匿名对象转换为字典。所以我在这些场景中所做的就是去找一本字典:

代码语言:javascript
复制
@{
  var htmlAttributes = new Dictionary<string, object>
  {
    { "class" , "form-control"},
    { "placeholder", "Why?" }        
  };
  if (Model.IsDisabled)
  {
    htmlAttributes.Add("disabled", "disabled");
  }
}
@Html.EditorFor(m => m.Description, new { htmlAttributes = htmlAttributes })

或者,正如斯蒂芬评论的那样,here

代码语言:javascript
复制
@Html.EditorFor(m => m.Description,
    Model.IsDisabled ? (object)new { disabled = "disabled" } : (object)new { })
票数 55
EN

Stack Overflow用户

发布于 2011-07-12 18:15:50

我喜欢Darin方法。但快速解决这个问题的方法是,

代码语言:javascript
复制
Html.TextBox("Expiry", null, new { style = "width: 70px;", maxlength = "10", id = "expire-date", disabled = "disabled" }).ToString().Replace("disabled=\"disabled\"", (1 == 2 ? "" : "disabled=\"disabled\""))
票数 23
EN

Stack Overflow用户

发布于 2014-12-11 03:14:45

我使用的一种简单方法是条件渲染:

代码语言:javascript
复制
@(Model.ExpireDate == null ? 
  @Html.TextBoxFor(m => m.ExpireDate, new { @disabled = "disabled" }) : 
  @Html.TextBoxFor(m => m.ExpireDate)
)
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6660146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档