通过JavaScript AJAX GET将参数传递给MVC控制器
我试图通过AJAX从JavaScript向我的C#控制器传递一组数据。传递的数据并不总是相同的。根本不存在对系统的创建/更新/删除操作—这纯粹是一个读取操作 我的对象如下所示:通过JavaScript AJAX GET将参数传递给MVC控制器,javascript,c#,jquery,json,ajax,Javascript,C#,Jquery,Json,Ajax,我试图通过AJAX从JavaScript向我的C#控制器传递一组数据。传递的数据并不总是相同的。根本不存在对系统的创建/更新/删除操作—这纯粹是一个读取操作 我的对象如下所示: values = { Id: [SOME INT ID], DB: [SOME DB ID], Values: [{collection of values}] } 这是我的ajax调用: $.ajax({ url: "MYURL?" + encodeURIComponent(JSON.
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中的控制器中。所有值都为空。如何将JSON数据传递到控制器中?提前感谢您。您的ajax调用应该是以下内容:
$.ajax({
url: "MYURL",
type: "GET",
success: function(data){
// do callback stuff
},
data: values
});
代码中存在的一些问题包括在
url:
行末尾使用分号而不是逗号,以及dataType:
设置响应数据类型(而不是发送到服务器的请求数据类型).在ajax方法中,url
中的变量名在哪里?您是否尝试过使用$.ajax({…数据:值})
而不是字符串化它们?我很确定jQuery将为您编码参数。showDataViewModel
和{collection of values}
code@Pluto在上面的评论中给出了正确的建议。是的,我们肯定需要查看完整的模型或您发送到服务器的数据示例。虽然jQuery可以轻松地将对象中的基本值转换为包含在请求中,但使用嵌套对象可能会有问题。值中的某些数据。可能不会发送值。