我有一张表格:
using (Html.BeginForm("SubmitWork", "ActivitySubmission", FormMethod.Post, new { @class = "activityForm", Name = "pba-activity-form-" + item.ActivityTemplateId, Id = "pba-activity-form-" + item.ActivityTemplateId })){
//Some stuff here
<input type="submit" ... />
}
当它被POST时,代码实际上从未到达控制器。表单使用jquery.form(http://www.malsup.com/jquery/form/)。 javascript:
function setOptions(formData, jqForm, options){
var parts = $(jqForm).prop("id").split("-");
var activityTemplateId = parts[3];
var resultsDivId = "#activityResults" + activityTemplateId;
var msg = '<div style="height:40px; margin-right:20px; float:left;"><img src="/Content/loadingSpinner.gif" /></div>' +
'Saving your work...<div style="clear:both;"></div>';
$(resultsDivId).html(msg).slideDown();
}
$(".activityForm").ajaxForm({
type: 'POST',
beforeSubmit: setOptions,
success: function (data) {
if ($(this).valid) {
var x = data.message;
var y = data.status;
var z = data.data;
}
}
});
setOptions函数基本上只是在表单中呈现“加载”div,让用户知道发生了什么。
当代码运行并单击提交按钮时,一切都正常运行直到实际帖子。帖子永远不会命中控制器(即在调试模式下:它永远不会中断,代码不会被执行等)并且只是作为“成功”返回。返回时,变量“data”包含整个页面的HTML字符串。
我知道很难用我所说的内容来诊断这样的问题,但是有人能给我一些关于可能发生的事情的想法吗?我没有得到任何迹象表明幕后发生了404或任何事情,或者有任何错误......
控制器方法如下所示:
[HttpPost]
public ActionResult SubmitWork(long activityTemplateId, long studentProjectId)
{
//stuff
return Json(someDataResults, JsonRequestBehavior.AllowGet);
}