您好,登錄后才能下訂單哦!
在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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。