- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的网络应用程序中,我有一个页面,其中包含管理员可以批量批准或拒绝的“请求”列表。所以页面看起来像这样:
[x] Request 1
[ ] Request 2
[x] Request 3
[ ] Request 4
[Approve Selected] [Deny Selected]
我的模型看起来像:
public class RequestManagementModel
{
public List<string> LicenseIdsToProcess { get; set; }
public List<Resource> Resources { get; set; }
// additional fields
}
在我看来,我有:
int counter = 0;
@foreach (Resource r in Model.Resources)
{
<tr>
<td>
@Html.CheckBoxFor(model => model.LicenseIdsToProcess[counter++], new { value = r.RequestId })
</td>
</tr>
}
当然,我的 Controller 操作接受表单发布上的模型
public ActionResult ProcessRequests(RequestManagementModel model, ProcessType type)
{
// process requests here
}
因此,正如您所料,我在 model.LicenseIdsToProcess[counter++]
的 View 中收到错误这表示“无法将类型‘string’隐式转换为‘bool’”。它不喜欢我尝试使用复选框来表示用户可以从中选择一个或多个值的值列表,而不是单个 true/false。
我希望这样设置,以便对于用户选择的每个复选框,在发布表单时,该字符串 id 值都会绑定(bind)到我的模型中的 id 列表。我知道如何通过使用 <input type="checkbox">
来做到这一点,因为我可以在那里设置复选框的值。但有没有办法将它与 Html.CheckBoxFor 一起使用,通过模型绑定(bind)实现强类型?
谢谢。
最佳答案
您的列表需要是:
public class RequestManagementModel
{
public Dictionary<string, bool> LicenseIdsToProcess { get; set; }
public List<Resource> Resources { get; set; }
// additional fields
}
自 LicenseIdsToProcess
目前是List<string>
Html.CheckBoxFor() 无法将字符串值转换为 bool 值。您需要使用字典或列表之类的东西,例如
public class Licence
{
public string Id { get; set; }
public bool Processed { get;set; }
}
public class RequestManagementModel
{
public List<Licence> LicenseIdsToProcess { get; set; }
public List<Resource> Resources { get; set; }
// additional fields
}
int counter = 0;
@foreach (Resource r in Model.Resources)
{
<tr>
<td>
@Html.CheckBoxFor(model => model.License[counter++].Processed, new { value = r.RequestId })
</td>
</tr>
}
或者类似的东西:)
编辑:
在回复评论时,我意识到我的代码不正确。这是更新版本:
@for(int idx = 0; idx < Model.Resources.Count; idx++)
{
<tr>
<td>
@Html.CheckBoxFor(model => model.License[idx].Processed, new { value = Model.Resources[idx].RequestId })
</td>
</tr>
}
关于ASP.NET MVC : Use Html. CheckBoxFor() 在选中时收集字符串值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788337/
checkbox 的非常经典的用法,如果它不是我在字典中写的情况。启动网站时,我会转到带有复选框的页面。在这里,我的字典存在并填充了设置为 false 的值: 在测验之前,构建 ViewModel:
我正在开始的一个新项目中使用 bootstrap 5,我决定创建一个包装器来自动为我执行此操作,而不是必须围绕表单字段编写所有脚手架。 我对 textboxfor、textareafor 和 drop
我正在使用 CheckBoxFor 创建一组复选框的形式。我已向这些复选框添加了一个类,但由于 CheckBoxFor 没有将该类添加到隐藏的 false 复选框,因此我无法根据它选择这些生成的复选框
我想在MVC4中使用这个复选框,它会生成复选框和隐藏字段,我已经给了复选框选中并且其值为true,但隐藏字段的值为false,我不知道出了什么问题? @Html.CheckBoxFor(m => m.
我有一组“权限”。每个权限都具有三个属性:Id、Name 和 HasPermission。因此,作为示例,请考虑以下对象: public class AccessPerm { int PermId
我需要在点击函数上将模型值传递给@Html.CheckBoxFor 这是我的代码 @Html.CheckBoxFor(m => m.itemCategoryList[i].addItem, new
当文本框为空时禁用复选框但当文本框填充时移除属性如代码所示:这是在复选框上的工作,但不是在 Razor View 引擎中,请任何人帮助我 @Html.TextBoxFor(model => model
我动态创建了复选框。 @for (var i = 0; i @Html.CheckBoxFor(m => Model.Categories[i].AllChecked, new {
checkboxFor 为复选框呈现以下内容: 在javascript中, $('#IsCredit').val(); 总是正确的。勾选还是不勾选 如何确定复选框是否已在 Javascript 中
我有一个 View 模型: public class RegisterModel { ... public bool Confirmation{ get; set; } } 我在我的 Vi
有没有办法将@HTML.Checkboxfor 转换为切换 html 按钮?我引用了 https://www.w3schools.com/howto/howto_css_switch.asp 中的切换
我正在尝试创建一个动态 CheckBoxFor,其中某些项目被禁用。 这是禁用一切: @Html.CheckBoxFor(m=>m.Checked, new { @disabled = "disabl
问题是,由于某些奇怪的原因,当我使用 CheckBoxFor 时,我得到一个复选框,但 ID 中有“CS___8__locals1”。不知道这是从哪里来的,也不知道为什么会发生。 有什么想法吗?见下文
我有一个类角色如下; public enum Role { User1 = 1, User2 =
我无法为 @html.checkboxFor() 设置“通知我”标签我不想使用 div。我想让它变得简单。 最佳答案 类似于: Notify me @Html.CheckboxFor(...) 关于j
这个问题在这里已经有了答案: Post an HTML Table to ADO.NET DataTable (2 个答案) 关闭 6 年前。 我正在练习这个项目,我需要向用户显示一个客户列表和每个
我在构建一个包含复选框列表的表单时使用 CheckboxFor: @foreach (
我正在运行一个 MVC5 站点并尝试将其从使用单选按钮切换为使用复选框。我已经阅读了该站点上的其他一些示例,但似乎无法正常工作。我当前的 ViewModel 作为 NULL 发布到 Controlle
问题: 我想显示基于枚举的复选框列表: 例如item1[] item2[] item3[] 但是,需要根据逗号分隔列表 model.platforms 的内容检查这些复选框 例如: 如果 model.
如何使用 htmlAttributes 使 @Html.CheckBoxFor 不可见? 我试过: @Html.CheckBoxFor(modelItem => modelItem.Delete
我是一名优秀的程序员,十分优秀!