我陷入了一个奇怪的问题。
我的 MVC 视图中有一个复选框,它是从 jQuery 呈现的。
<div>
<label for="check" class="chk">
Del ?
<input id="IsSoftDeleted" name="IsSoftDeleted" data-val-required="The Del? field is required." data-val="true" type="checkbox" class="check" />
</label>
</div>
该脚本的编写方式是选中和未选中的值是打开和关闭。
我在我的 bodel 活页夹中按如下方式处理了它:
protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
{
bool softDelete = Convert.ToBoolean(bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue != null
&& bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue == "on" ? "true" : "false");
return OrgFactory.Create(bindingContext.ValueProvider.GetValue("Caption").AttemptedValue,
bindingContext.ValueProvider.GetValue("NameInUse").AttemptedValue,
bindingContext.ValueProvider.GetValue("Description").AttemptedValue,
softDelete, new Party());
}
这工作正常,组织的 IsSoftDeleted 属性现在为真或假。
然而,由于我的模型类中的布尔值 IsSoftDeleted,ModelState 指的是尝试值,即 on 并且 ModelState 正在变为假。
我试图将值设置为 AttemptedValue 属性,但它无法访问。
有人可以建议我如何解决它吗?