ASP.NET CheckBoxFor生成隐藏字段混乱ajax提交

时间:2014-12-01 21:54:26

标签: jquery ajax asp.net-web-api

因此默认情况下@Html.CheckBoxFor将在原始字段之后生成隐藏字段,例如

<input name="xxx" id="xxx" type="checkbox" .... data-val="true" value="true"/>
<input name="xxx" type="hidden" value="false"/>

当我使用$(form).serialize()进行ajax提交时,如果选中该复选框,则帖子正文将包含两个xxx字段。 (xxx=true&&xxx=false)这是预期的。但是ModelState.IsValid返回false,错误是

  

System.InvalidOperationException:参数转换类型&#39; System.Collections.Generic.List`1 [System.String]&#39;输入&#39; System.Boolean&#39;失败,因为没有类型转换器可以在这些类型之间转换

我该如何解决这个问题?

更新: 它发生在我的WebAPI控制器上,我正在使用

进行常规模型绑定
[HttpPost]
public void MyMethod(MyModel model)
{
    if ( !ModelState.IsValid )
        throw new HttpResponseException( HttpStatusCode.BadRequest );
}

0 个答案:

没有答案