在C# MVC中,使用复选框进行客户端数据收集和发送的方法如下:
Person
,其中包含一个IsAdmin
布尔属性,我们希望用户可以选择一个或多个角色。@model Person
@{
ViewBag.Title = "Edit Person";
}
<h2>Edit Person</h2>
@using (Html.BeginForm("Edit", "Person", FormMethod.Post))
{
@Html.HiddenFor(m => m.Id)
<fieldset>
<legend>Roles</legend>
<input type="checkbox" name="Roles" value="Admin" @(Model.IsAdmin ? "checked" : "") /> Admin
<input type="checkbox" name="Roles" value="User" @(Model.Roles.Contains("User") ? "checked" : "") /> User
<input type="checkbox" name="Roles" value="Guest" @(Model.Roles.Contains("Guest") ? "checked" : "") /> Guest
</fieldset>
<input type="submit" value="Save" />
}
在这个例子中,我们使用了name
属性来表示复选框的名称,并使用value
属性来表示复选框的值。我们还使用了条件运算符(@(Model.IsAdmin ? "checked" : "")
)来根据模型的值设置复选框的checked
属性。
name
属性的值作为键,以value
属性的值作为值。例如,如果用户选择了"Admin"和"User"角色,请求将包含以下数据:Roles: Admin=true&Roles: User=true
Request.Form
来获取这些值。例如,要获取选中的角色,你可以这样做:[HttpPost]
public ActionResult Edit(Person person)
{
if (ModelState.IsValid)
{
// 获取选中的角色
var selectedRoles = Request.Form["Roles"].Split(',');
// 更新模型
person.IsAdmin = selectedRoles.Contains("Admin");
person.Roles = selectedRoles;
// 保存更改
// ...
return RedirectToAction("Index");
}
return View(person);
}
在这个例子中,我们首先检查模型状态是否有效。如果有效,我们从Request.Form["Roles"]
获取选中的角色,然后更新模型的IsAdmin
和Roles
属性。最后,我们保存更改并返回一个重定向响应。如果模型状态无效,我们返回视图以显示错误消息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。