我阅读了与同一问题相关的各种帖子,但似乎无法找到解决方案。我有一个MVC 4应用程序,我指定了一个表单
@using (Html.BeginForm("SaveFirstAmountPayable", "Policy", FormMethod.Post,
new Dictionary<string, object> { { "name", "frmPolicyFirstAmountPayable" },
{ "id", "frmPolicyFirstAmountPayable" } }))
{
@Html.Kendo().HtmlHelper.TextBoxFor(m =>
m.FirstAmountPayable.FirstAmountPayableDescription,
new Dictionary<string, object> { { "id", "txtDescription" }})
// Some other inputs bounded to the model.
}
我有一个按钮
<button class="btn grey" type="button" id="btnSave" name="btnSave">Save</button>
和一些JQuery代码将进行一些验证,然后使用
提交表单$(formId).submit();
我的控制器中有一个断点,并且传递的模型中的所有值都为null。有什么想法会发生这种情况吗?
答案 0 :(得分:0)
好的,我发现这个问题希望将来可以帮助某人,
我在控制器中添加了以下代码片段,以查看是否发现了任何ModelState错误
foreach (var modelState in ViewData.ModelState.Values)
{
foreach (var error in modelState.Errors)
{
// Do something with the error.
}
}
发现模型绑定因为无法执行的字符串转换而失败。这让我更仔细地查看了表单中的输入字段,并找到了以下内容
@Html.Kendo().HtmlHelper.RadioButtonFor(m => m.FirstAmountPayable,
"Condition", new { @class = "type-radio", @id = "chkCondition" })
m =&gt; m.FirstAmountPayable 是我的模型,显然不能绑定到单选按钮。一旦我修复了这一切,一切都按预期工作。