我正在尝试从部分视图将表单数据提交到 MVC3 控制器。由于某种原因,提交的数据模型永远不会被填充。
这是处理表单提交的 jquery:
$(document).on('submit', '#FormNewCall', function (e) {
e.preventDefault();
$.ajax(
{
async: true,
type: "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
success: function (data) {
$("#callTable").replaceWith(data);
},
error: function () {
alert("Error submitting call");
},
complete: function () {
CloseNewCall();
}
})
});
我使用“on”(第一行)的原因是因为仅在需要时才通过 jquery/ajax 添加包含“FormNewCall”的部分视图。
控制器中的 ActionResult 如下所示:
// POST: /Default/SubmitCall/
[Authorize]
[HttpPost]
public ActionResult SubmitCall(ServiceCallModel SubmittedModel)
{
if (Request.IsAjaxRequest())
{
// Do things before returning a new view
}
else
{
return View();
}
}
实际的形式是一个局部视图,有很多这样的东西:
<div class="rowContainer">
<tr class="SmallRow">
<td>@Html.Label("Brief")
</td>
<td>@Html.TextBoxFor(m => m.NewCallModel.description)
</td>
</tr>
</div>
当我在控制器中设置断点时,参数“SubmittedModel”存在但所有值都是空的。
似乎属性“Request.Form”是一个 json 字符串,其中包含来自提交表单的所有预期数据。
有什么我想念的吗?