0

我有一个包含以下片段的部分视图:

@model Mbrrace.Domain.MbrraceForm
<div class="row">
    <div class="span12 form-horizontal">
    @using (Ajax.BeginForm("DetailsSection11", "DataForm",
        new AjaxOptions
        {
            HttpMethod = "POST",
            OnComplete = "NextTab"
        }
        ))

在调用显示此部分视图的视图的控制器中,一些模型值是预设的,但不显示或以其他方式使用。当 Ajax 提交发生时,其中一些值已被清除(整数变为零,字符串变为空),但保留了日期值。正确返回表单本身中设置的值。

我已经检查了预设值在使用@Html.DisplayFor 显示它们到达表单时是否正确。

我在解决方案的其他地方使用 Ajax.BeginForm 和模型,完全没有问题。我在提交之前和之后检查了 ModelState 并且它是有效的。我也试过 ModelState.Clear() 没有效果。

在我撕掉我的头发所剩无几之前,任何想法可能是什么问题。

4

1 回答 1

0

如果表单中的这些值没有相应的输入字段,则在 POST 表单时它们将永远不会提交到服务器。因此,默认模型绑定器将无法从请求中绑定您的模型,当然所有这些属性都将具有其默认值。所以你有几种可能性:

  • 将这些属性作为隐藏字段包含在表单中。
  • 从您在 GET 操作(数据库或其他东西)中获取它们的任何位置,在您的 POST 控制器操作中获取它们。
于 2012-10-01T12:35:25.350 回答