MVC3表单没有在POST(jquery.form)上访问控制器

时间:2012-12-06 19:21:07

标签: jquery asp.net-mvc-3 jquery-forms-plugin

我有一张表格:

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);
}

0 个答案:

没有答案