美元的格式.asp.net mvc的Ajax调用
本文关键字:Ajax 调用 mvc asp 格式 美元 net | 更新日期: 2023-09-27 18:04:03
所以我一直在使用ASP。. NET MVC 5 web应用程序,我正在做一个调查风格的项目。用户被问了一个问题,我做了一些格式化,然后我希望数据传回我的控制器,在另一个视图中提供下一个问题。问题是将数据从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#代码:
public void submitUserAnswer(String userOutput) {
//here I take the answer and feed the user the next question, possibly linking to other c# methods
}
所以我最初打算使用[WebMethod]
,但遇到了一些问题(我是一个非常新的c#和ASP。Net,并且找不到实现它的方法。由于显而易见的原因,我不能将变量传递给ViewBag
,所以我遇到了一个建议使用jQuery Ajax
调用的帖子。我以前从未使用过Ajax。如何格式化Ajax调用以完成我想要的操作,或者是否有其他更简单的方法来完成相同的任务?
如果希望使用AJAX调用,可以使用简单的AJAX将数据发送到控制器。这将发送数据到控制器方法(subtmitUserAnswer)并返回数据(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
});
}