首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板