条件启用/禁用asp.net mvc文本框

时间:2014-09-01 10:53:01

标签: asp.net-mvc asp.net-mvc-4 textbox disabled-input

这就是我的尝试:

  @Html.TextBoxFor(model => model.EntryDate, new { style="width:90px;",((_new || _modify) ? @disabled="disabled":"") }) @Html.ValidationMessageFor(model => model.EntryDate)

2 个答案:

答案 0 :(得分:2)

以下内容可行,因为只有一个html属性

@Html.TextBoxFor(m => m.EntryDate, (_new || _modify) 
  ? new { @disabled = "disabled" } 
  : null)

但是,一旦添加了style属性,就会生成错误,因为new { @disabled = "disabled", @Style="width:90px;" }new { @Style="width:90px;" }之间没有隐式转换,因此您需要在if块中执行此操作

@if(_new || _modify) {
  @Html.TextBoxFor(m => m.EntryDate, new { @disabled = "disabled", style="width:90px;")}
} else { 
  @Html.TextBoxFor(m => m.EntryDate, new { style="width:90px;" })
}

修改

将html字典转换为object似乎有效但我还没有对此进行全面测试(我不确定它的“是一种简单而优雅的方式”

@Html.TextBoxFor(m => m.EntryDate, (_new || _modify) 
  ? (object)new { @disabled = "disabled", style="width:90px;" } 
  : (object)new { style="width:90px;" })

答案 1 :(得分:0)

我不确定但是试试这个:

@Html.TextBoxFor(model => model.EntryDate, (_new || _modify) ? new{ @Style="width:90px;", @Disabled="disabled"} : new{ @Style="width:90px;"})