将Checkbox值序列化为布尔值

时间:2018-01-31 04:04:54

标签: aspnetboilerplate

我有一些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”值。

任何帮助表示赞赏...

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如何使用它:

doctor.MdoMips = mdoMipsCheckbox.is(":checked") ? "true" : "false";
相关问题