没有得到Ajax.BeginForm asp.net mvc的回调

时间:2016-12-07 16:58:01

标签: javascript c# asp.net-mvc asp.net-mvc-4

我无法使用Ajax.BeginForm()

命中服务器代码

以下是我使用Ajax Helper方法的View的一部分

@model Ride.MMReports.ViewModels.ManualRecViewModel

.....

var options = new AjaxOptions
{
    OnBegin = "OnBeginMethod",
    OnFailure = "OnFailureMethod",
    OnSuccess = "OnSuccessMethod",
    OnComplete = "OnCompleteMethod",
    HttpMethod = "Post"
};

using (Ajax.BeginForm("Index", "ManRecReport", options))
{
    <button type="submit"
    name="action"
    value="Export to excel"
    id="export-excel"
    class="btn btn-primary"
    Export to excel
    </button>
}

@section scripts
{
    @Scripts.Render("~/bundles/report")
    @Scripts.Render("~/bundles/jqueryval")

}

我的包包括jquery.unobtrusive-ajax.js以及reports.js,其中包含所有事件方法

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

reports.js吼叫。浏览器能够显示警报,但它调用的最后一个方法是OnFailureMethod

var isError = false;

function OnBeginMethod() {
    alert("OnBeginMethod");
}

function OnFailureMethod(error) {
    isError = true;
    alert("OnFailure");
}

function OnSuccessMethod(data) {
    alert("OnSuccess");
}

function OnCompleteMethod(data, status) {
    if (!isError) {
        alert("OnCompleteMethod");
    }
}

这里的问题是当我点击按钮时,jquery-3.1.1.js失败了 http://localhost:31111/[object%20HTMLButtonElement] 404(未找到)  在这一行失败

xhr.send( options.hasContent && options.data || null );

我的控制器方法如下所示:

[HttpPost, ValidateAntiForgeryToken]
public ActionResult Index(ManualRecViewModel vm)
{
  ....
}

有什么想法我做错了吗?

0 个答案:

没有答案