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# - 计算半径内的100英里

c# - 从文本文件读取多行固定宽度记录

razor - 使用 Razor 在 Asp.net MVC 4 中 HandleError 是否不再起作用

jquery - 使用 javascript 调用 ViewComponents

c# - 分割字符串并转换为自定义类型

c# - 无法识别的转义序列\_。 C# 正则表达式

c# - 如何更改架构名称

asp.net-mvc - 使用 MVC 和 WebAPI 避免 Resharper <location> web.config 警告

c# - View 的@Model、ViewDataDictionary、ViewData 和 ViewBag 之间是如何关联的?

c# - Foreach 找不到嵌套类