gpt4 book ai didi

javascript - jQuery 通过 Ajax 在 ASP.NET MVC C# 中调用 Action 方法

转载 作者:数据小太阳 更新时间:2023-10-29 04:00:34 26 4
gpt4 key购买 nike

我已经尝试了几个小时来让它工作,我真的希望你们中的一个比我更了解(很多)这方面的知识。当客户端在文本框中键入时,我想调用MVC C# Controller 方法称为 updateOrder()。理想情况下,我想使用 FormCollection 访问表单元素(该表单称为“createOrder”)。

在 Controller 中,我有:

C#

[WebMethod]
public static void updateOrder(){
string s = "asdf";
}

上面的字符串声明是断点的。在 View 中,我有一个方法,我基本上是复制和粘贴我在 stackoverflow 上找到的:

JavaScript

function updateOrderJS() {
var $form = $('form[id="createOrder"]');
$.ajax({type : "POST",
url : $form.attr('action'),
data : $form.serialize(),
error : function(xhr, status, error) {},
success : function(response) {
updateOrder();
}
});
return false;
}

事件很简单:

JavaScript

updateOrderJS();

updateOrderJS() 方法触发(通过警报检查),但断点没有触发。

最佳答案

在 Asp.Net MVC 中,您不需要用 WebMethod 修饰您的方法。您只需创建一个 Action(这是一种方法)并从中返回结果。例如:

public class CustomerController : Controller 
{
public ActionResult Index()
{
return View();
}

[HttpPost]
public ActionResult UpdateOrder()
{
// some code
return Json(new { success = true, message = "Order updated successfully" }, JsonRequestBehavior.AllowGet);
}
}

在您的 View 中,您可以尝试这样的 javascript(使用 $.ajax jquery 方法——参见评论):

$.ajax({
url: '@Url.Action("UpdateOrder")', // to get the right path to controller from TableRoutes of Asp.Net MVC
dataType: "json", //to work with json format
type: "POST", //to do a post request
contentType: 'application/json; charset=utf-8', //define a contentType of your request
cache: false, //avoid caching results
data: {}, // here you can pass arguments to your request if you need
success: function (data) {
// data is your result from controller
if (data.success) {
alert(data.message);
}
},
error: function (xhr) {
alert('error');
}
});

关于javascript - jQuery 通过 Ajax 在 ASP.NET MVC C# 中调用 Action 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com