我有一個 ASP.Net Core MVC Web 應用程式專案。我想在表單提交時將復選框的選中狀態作為值發送到模型的相關引數。我見過很多使用 jquery 通過 onchange 方法獲取/設定復選框值的示例。
我想知道的是,是否可以以類似于下面的代碼的方式將當前復選框的選中狀態分配給該值。(它不起作用)
<input type="checkbox" id="IsActive" name="DTO.IsActive" checked="@Model.IsActive" value="(this.checked)"
我發現的最簡單的作業示例之一如下,但如果默認情況下選中復選框且其狀態未更改,則回傳 false。
<input type="checkbox" id="IsActive" name="DTO.IsActive" checked="@Model.IsActive" onchange="if(this.checked) this.value='true'; else this.value='false';" >
我知道有很多方法可以實作我想要的,但我想要最干凈的解決方案。
提前致謝!
編輯:我的代碼結構如下:
看法
@model MyModel
<form id="UpdateForm" class="was-validated" method="post" enctype="multipart/form-data" asp-controller="ControllerName" asp-action="Update">
<div class="modal-body">
<div class="form-group">
<input type="text" class="form-control" id="Name" name="DTO.Name" value="@Model.Name" required>
<input type="checkbox" id="IsActive" name="DTO.IsActive" checked="@Model.IsActive">
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" data-save="modal">Update</button>
</div>
</form>
控制器
public async Task<IActionResult> Update(Guid id, UpdateDto DTO)
{
...
}
解決方案 https://www.learnrazorpages.com/razor-pages/forms/checkboxes
在視圖中
<input type="checkbox" " id="IsActive" name="DTO.IsActive" checked="@Model.IsActive" value="true">
在 DTO 物件中設定默認值
public bool IsActive { get; set; } = false;
uj5u.com熱心網友回復:
是的,您可以通過使用行內 razor 陳述句 @() 來完成它,它看起來像這樣:
<input type="checkbox" id="IsActive" name="DTO.IsActive" @(Model.IsActive ? "checked" : "") />
你也可以使用復選框助手
@Html.CheckBoxFor(model => model.IsActive )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/373995.html
