c# - ASP.NET MVC 中的复选框禁用属性

标签 c# asp.net-mvc razor

我的 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/

相关文章:

c# - 使用 MVC3、Razor 和 C# 的插件系统

c# - 计算字节数组定时流的帧速率和大小

c# - Google 日历 API 和工具是否允许您将数据保存在个人数据库中

c# - WPF:ComboBox F4 键未在 KeyDown 事件中触发

c# - 如何在 asp.net mvc 中以编程方式确定路由前缀?

asp.net-mvc - 如何使用 Owin/Open ID Connect 添加其他 Azure AD 属性作为声明

razor - ASP.NET vNext 上的 Nancy 不加载 Nancy.Viewengines.Razor viewengine

javascript - 使用信号器更新数据库更改时如何刷新 View

asp.net-mvc - 单击按钮时渲染部分 View

c# - Asp.Net 如何在查询中使用 'IN' 子句传递参数以优化搜索