这就是我的尝试:
@Html.TextBoxFor(model => model.EntryDate, new { style="width:90px;",((_new || _modify) ? @disabled="disabled":"") }) @Html.ValidationMessageFor(model => model.EntryDate)
答案 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;"})