0

我有一个表格:

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" ... />
}

当它被发布时,代码永远不会真正到达控制器。该表单使用 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);
}
4

0 回答 0