基于MVC表单的Ajax请求

基于MVC表单的Ajax请求,ajax,asp.net-mvc,html.beginform,Ajax,Asp.net Mvc,Html.beginform,我正在尝试执行ajax请求,根据ajax请求的结果,我将允许表单提交给控制器。但是,每次运行ajax请求时,我都会收到错误消息 下面是我的javascript函数: function CheckForValidation(e) { var scholarshipRequest = $("#scholars").val(); var aidYearRequest = $("#aidYear").val(); var amountRequest = $("#amount").

我正在尝试执行ajax请求,根据ajax请求的结果,我将允许表单提交给控制器。但是,每次运行ajax请求时,我都会收到错误消息

下面是我的javascript函数:

function CheckForValidation(e) {
    var scholarshipRequest = $("#scholars").val();
    var aidYearRequest = $("#aidYear").val();
    var amountRequest = $("#amount").val();

    $.ajax({
        type: "POST",
        url: '@Url.Action("Validate_ScholarshipRequest", "RequestController")',
        data: {
            scholarshipId: scholarshipRequest,
            aidYear: aidYearRequest, 
            amount: amountRequest
        }
    }).success(function(response) {
        if (!response.success) {
            e.preventDefault();
            alert(success);
        } else {
            e.preventDefault();
        }
    }).error(function() {
        e.preventDefault();
        alert("Error on Submission");
    });
}
从此处调用此函数:

$("#SubmitTutorRequestFrm").submit(function(e) {
    e.PreventDefault();
    CheckForValidation(e);
});
我尝试调试代码并在Validate_ScholarshipRequest上设置断点,但该方法从未被调用。方法签名为:

public ActionResult Validate_ScholarshipRequest(string scholarshipId, string aidYear, string amount)
这是我表格的开始:

@using (Html.BeginForm("SubmitScholarshipRequest", "Request", FormMethod.Post, new { id = "SubmitTutorRequestFrm" }))

为了得到正式回答并“关闭”,这是由语法错误引起的:

url: '@Url.Action("Validate_ScholarshipRequest", "RequestController")',
控制器名称中不应包含控制器。正确的做法是:

url: '@Url.Action("Validate_ScholarshipRequest", "Request")',

错误是什么?操作方法是否用
HttpPost
属性修饰?错误是404错误,是的,方法的HttpPost属性没有404属性,我希望您需要放入
e.preventDefault()就在函数的开头。您不能等到AJAX调用返回—请记住AJAX是异步的,在运行时,您的表单可能已经提交了自己。通常在指定“RequestController”时不包括“controller”。谢谢。我不确定是否可以把你的评论作为答案。