【发布时间】:2015-03-25 04:53:41
【问题描述】:
这是我想要达到的目标的示例:
@Html.EditorFor(m => m.Description,
new { htmlAttributes =
new
{
@class = "form-control",
@readonly = Model.IsReadOnly,
disabled = Model.IsDisabled
}
})
问题是浏览器认为存在readonly和disabled标记而不检查它们的内容,所以当IsReadOnly和IsDisabled属性为false时,它仍然会显示为@ 987654329@.
有什么简单的解决办法吗?
【问题讨论】:
-
也许你应该为此写your own extension。
-
您需要测试每个条件 - 例如
@Html.EditorFor(m => m.Description, Model.IsDisabled ? (object)new { disabled = "disabled" } : (object)new { }) -
@StephenMuecke 是迄今为止最方便的答案。为什么不写一个正确的答案?
-
@Shimmy,只是展示了你能做什么,但它会很长而且很混乱,因为你有两个条件要检查(
Model.IsReadOnly和Model.IsDisabled)。如果这不是“一次性”,我会考虑使用自定义助手(您真的要禁用控件吗?-他们不会回发)。 -
@StephenMuecke,只是为了示例而将它们包括在内。无论如何,我找到了一个优雅的解决方案并将其发布到here,因为这个问题作为一个骗子被关闭了。
标签: c# html asp.net-mvc razor disabled-input