通过JavaScript AJAX GET将参数传递给MVC控制器

本文关键字:MVC 控制器 参数传递 JavaScript AJAX GET 通过 | 更新日期: 2023-09-27 18:24:06

我正试图通过JavaScript中的AJAX将一组数据传递给我的C#控制器。传递的数据并不总是相同的。根本没有对系统进行创建/更新/删除,这纯粹是一个读取操作。

我的对象看起来像这样:

values = {
    Id: [SOME INT ID],
    DB: [SOME DB ID],
    Values: [{collection of values}]
}

这是我的ajax调用:

$.ajax({
    url: "MYURL?" + encodeURIComponent(JSON.stringify(values)),
    type: "GET",
    success: function(data){
        // do callback stuff
    },
    dataType: "json"
});

我的控制器是:

[HttpGet]
public ActionResult MyController(DataViewModel viewModel){
    // Stuff and Things code
}

数据根本没有填充在viewModel中的控制器中。所有值都为null。如何将JSON数据传递到控制器?提前谢谢。

通过JavaScript AJAX GET将参数传递给MVC控制器

您的ajax调用应该如下所示:

$.ajax({
    url: "MYURL",
    type: "GET",
    success: function(data){
        // do callback stuff
    },
    data: values
});

代码中存在的一些问题包括在url:行末尾使用了分号而不是逗号,并且dataType:设置了响应数据类型(而不是发送到服务器的请求数据类型)。