首页 > 后端开发 > C++ > 如何在ASP.NET Core View中有效地通过和检索选定的复选框?

如何在ASP.NET Core View中有效地通过和检索选定的复选框?

Mary-Kate Olsen
发布: 2025-01-31 17:46:09
原创
325 人浏览过

How to Efficiently Pass and Retrieve Selected Checkboxes in an ASP.NET Core View?

在ASP.NET Core视图中高效传递和检索选中的复选框

问题:

需要将项目列表传递到视图中,通过复选框进行选择,并检索选中的项目。但是,手动生成HTML输入会导致未选中的输入无法回传。实现此功能的最佳实践是什么?

答案:

避免手动生成HTML

不建议在这种情况下手动生成HTML。现代MVC框架(如ASP.NET Core)提供强类型HTML辅助方法,用于高效可靠的模型绑定。

创建ViewModel

为了在视图中表示模型数据,创建一个ViewModel类,该类与领域模型非常相似,但包含用于复选框选择的附加属性。例如:

public class UserViewModel
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<RoleViewModel> Roles { get; set; }
}

public class RoleViewModel
{
    public int ID { get; set; }
    public string Name { get; set; }
    public bool IsSelected { get; set; }
}
登录后复制

填充ViewModel

在GET操作方法中,使用领域模型中的数据填充ViewModel,包括根据角色当前是否分配给用户来设置每个角色的IsSelected属性。

在视图中使用HTML辅助方法

在视图中,使用强类型HTML辅助方法来呈现复选框输入。这确保了正确的模型绑定并简化了代码。

@Html.HiddenFor(m => m.ID)
@Html.DisplayFor(m => m.Name)
@foreach (var role in Model.Roles)
{
    @Html.HiddenFor(m => role.ID)
    @Html.CheckBoxFor(m => role.IsSelected)
    @Html.LabelFor(m => role.IsSelected, role.Name)
}
登录后复制

在POST操作方法中处理选中的角色

在POST操作方法中,ViewModel将自动绑定到请求。然后,您可以遍历Roles集合并检查IsSelected属性以确定选择了哪些角色。

以上是如何在ASP.NET Core View中有效地通过和检索选定的复选框?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板