Javascript asp.net mvc的格式$.ajax调用

Javascript asp.net mvc的格式$.ajax调用,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,所以我一直在使用ASP.NETMVC5Web应用程序,并且正在做一个调查式的项目。本质上,用户被问到一个问题,我做一些格式化,然后我希望数据传递回我的控制器,以便在另一个视图中为下一个问题提供服务。问题是将数据从javascript变量传递到c#变量(方法)。以下是我的代码: Javascript: function validateDateInput() { var year = $('#yearInput').val(); var month = $('#monthInpu

所以我一直在使用ASP.NETMVC5Web应用程序,并且正在做一个调查式的项目。本质上,用户被问到一个问题,我做一些格式化,然后我希望数据传递回我的控制器,以便在另一个视图中为下一个问题提供服务。问题是将数据从javascript变量传递到c#变量(方法)。以下是我的代码:


Javascript:

function validateDateInput() {
    var year = $('#yearInput').val();
    var month = $('#monthInput').val();
    var day = $('#dayInput').val();
    //a lot of validation in here to make sure the date is an actual date
    goToNextQuestion(month + '/' + day + '/' + year);
}
function goToNextQuestion(output) {
    //here is where I need to pass my variable, output, to a c# function in my controller
    //I need to call the method submitUserAnswer(output)
}
和我的C#代码:


因此,我最初打算使用
[WebMethod]
,但遇到了一些问题(一般来说,我对C#和ASP.Net非常陌生,找不到实现它的方法。出于明显的原因,我不能直接将变量传递给
ViewBag
,因此我遇到了一篇帖子,其中建议使用jQuery
Ajax
调用。我以前从未使用过Ajax。我如何格式化Ajax调用以实现我想要的功能,或者还有其他更简单的方法吗方法执行相同的操作?

如果希望使用AJAX调用,可以使用简单的AJAX将数据发送到控制器。这将向控制器方法(SubmitUserAnswer)发送数据并返回数据(response),您可以使用该数据填充页面

如果您希望重定向到各种页面/视图,则不应使用AJAX,因为
RedirectToAction()
作为C#
ActionResult
将无法通过AJAX运行。您可以在成功处理程序中使用window.location.href移动页面,但是如果您希望根据答案指向各种视图,这最适合将模型传递给控制器并正确使用MVC。这是基本的MVC功能和进一步的信息可以在许多在线教程中找到或在其中一个上找到

如果您希望异步,这里是您需要的AJAX调用。从后端调用数据/逻辑并保持在同一页面上

var dateInput = "";

function validateDateInput() {
    var year = $('#yearInput').val();
    var month = $('#monthInput').val();
    var day = $('#dayInput').val();
    //a lot of validation in here to make sure the date is an actual date
    var dateInput = (month + '/' + day + '/' + year);

    $.ajax({
        type: "POST",
        url: "~/Controllers/controllerName/submitUserAnswer", //Put your path here.
        data: { userOutput : dateInput }
        success: function (response) {
            //Success! Utilize the data sent back in "response" here
    }
    //add Error handling here
    });
}
var dateInput = "";

function validateDateInput() {
    var year = $('#yearInput').val();
    var month = $('#monthInput').val();
    var day = $('#dayInput').val();
    //a lot of validation in here to make sure the date is an actual date
    var dateInput = (month + '/' + day + '/' + year);

    $.ajax({
        type: "POST",
        url: "~/Controllers/controllerName/submitUserAnswer", //Put your path here.
        data: { userOutput : dateInput }
        success: function (response) {
            //Success! Utilize the data sent back in "response" here
    }
    //add Error handling here
    });
}