我正在尝试从局部视图向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字符串。
我有什么遗失的吗?