将复选框值序列化为布尔值

Serialization of Checkbox values into Boolean values

我有一些 js 正在尝试处理复选框值(假设在 "main.js" 中没有处理)

var doctor = _$form.serializeFormToObject(); 
var mdoMipsCheckbox = $("input[name='MdoMips']:checked");
doctor.MdoMips = mdoMipsCheckbox.val();

视图如下所示:

<input type="checkbox" name="MdoMips" value="@Model.Doctor.MdoMips" class="filled-in" id="doctor-mdomips" @(Model.Doctor.MdoMips ? "true" : "") />

并且 Dto 和 Entity 的模型都有 属性:

[Column("MDO_MIPS")]
[DisplayName("MDO MIPS")]
public bool MdoMips { get; set; }

我的问题是我的序列化对象看起来像:

BirthDate:"25-Dec-1962"
FirstName:"Philip"
Id:"4"
LastName:"Fergus"
MdoMips:**"on"**
MdoOther:"rrr"
Title:"Mr"

验证失败。

我不确定解决此问题的最佳方法是什么,以便我在序列化布尔值 属性 上看到 "true" 或 "false" 值。

感谢任何帮助...

  1. public bool MdoMips 更改为 public byte MdoMips
  2. 从 html 中删除 @(Model.Doctor.MdoMips ? "true" : ""),这不是 需要 Angular 进行双向绑定。

使用这个怎么样:

doctor.MdoMips = mdoMipsCheckbox.is(":checked") ? "true" : "false";