我有一个部分视图,其中包含以下代码段:
@model Mbrrace.Domain.MbrraceForm
<div class="row">
<div class="span12 form-horizontal">
@using (Ajax.BeginForm("DetailsSection11", "DataForm",
new AjaxOptions
{
HttpMethod = "POST",
OnComplete = "NextTab"
}
))
在调用显示该局部视图的视图的控制器中,预设了一些模型值但未显示或以其他方式使用。当Ajax提交发生时,其中一些值已被清除(ints更改为零,字符串为null)但是保留了日期值。表单中设置的值将正确返回。
我已经检查了预设值在使用@ Html.DisplayFor到达表单时是否正确显示它们。
我在解决方案的其他地方使用Ajax.BeginForm和模型,完全没有问题。我在提交之前和之后检查了ModelState,它是有效的。我也尝试过ModelState.Clear()而没有效果。
在我撕掉我的头发剩余的东西之前,任何想法可能是什么问题。
答案 0 :(得分:0)
如果表单中没有相应的输入字段,则在POST表单时永远不会将其提交给服务器。因此,默认模型绑定器将无法从请求中绑定您的模型,当然所有这些属性都将具有其默认值。所以你有几种可能性: