有条件启用/禁用asp.net的MVC文本框
问题描述:
这是我的尝试:有条件启用/禁用asp.net的MVC文本框
@Html.TextBoxFor(model => model.EntryDate, new { style="width:90px;",((_new || _modify) ? @disabled="disabled":"") }) @Html.ValidationMessageFor(model => model.EntryDate)
答
我不知道,但尝试这一个:
@Html.TextBoxFor(model => model.EntryDate, (_new || _modify) ? new{ @Style="width:90px;", @Disabled="disabled"} : new{ @Style="width:90px;"})
+0
你确定这些匿名类型是否兼容?你测试过了吗? – Charleh 2014-09-01 12:51:18
答
下面的工作,因为只有一个html属性
@Html.TextBoxFor(m => m.EntryDate, (_new || _modify)
? new { @disabled = "disabled" }
: null)
但是,一旦添加了style属性,这将产生一个错误,因为没有隐式转换吐温和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;" })
广东话你只需要使用@if(comeCondition){@ Html.TextBo xFor(model => model.EntryDate)} else {@ Html.TextBoxFor(model => model.EntryDate,new {@disabled =“disabled”)} – 2014-09-01 12:03:33
嗯,我希望有一个简单而优雅的方式去它 – POIR 2014-09-01 12:04:44
好的,会发布回答 – 2014-09-01 12:32:07