模型值在表单帖子上返回为null

时间:2013-09-26 07:12:31

标签: c# asp.net-mvc-4 post

我阅读了与同一问题相关的各种帖子,但似乎无法找到解决方案。我有一个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。有什么想法会发生这种情况吗?

1 个答案:

答案 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 是我的模型,显然不能绑定到单选按钮。一旦我修复了这一切,一切都按预期工作。