我的 ViewModel 有一个 selected 和 selectable 的属性。两者都是 bool 值。我希望我的 View 有一个复选框,当 selectable 为 true 时启用,当 selectable 为 false 时禁用。实现此目的的正确 Razor 语法是什么?
我在表格中的项目列表上尝试了下面的代码。无论可选值如何,每一行都会返回一个禁用的复选框。
@Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })
最佳答案
使用 if
条件在辅助方法中实现这一点并不容易,因为以下所有标记都会呈现禁用的复选框。
<input type="checkbox" disabled>
<input type="checkbox" disabled="disabled">
<input type="checkbox" disabled="false">
<input type="checkbox" disabled="no">
<input type="checkbox" disabled="enabled">
这应该适用于 Razor 。简单的 If 条件和渲染你想要的。
@if(item.Selected)
{
@Html.CheckBoxFor(modelItem => item.Selected)
}
else
{
@Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = "disabled"})
}
您可以考虑编写一个自定义 html 帮助器,它可以为此呈现正确的标记。
关于c# - ASP.NET MVC 中的复选框禁用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940746/