Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JavaScript AJAX GET将参数传递给MVC控制器_Javascript_C#_Jquery_Json_Ajax - Fatal编程技术网

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

通过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.

我试图通过AJAX从JavaScript向我的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中的控制器中。所有值都为空。如何将JSON数据传递到控制器中?提前感谢您。

您的ajax调用应该是以下内容:

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

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

在ajax方法中,
url
中的变量名在哪里?您是否尝试过使用
$.ajax({…数据:值})
而不是字符串化它们?我很确定jQuery将为您编码参数。show
DataViewModel
{collection of values}
code@Pluto在上面的评论中给出了正确的建议。是的,我们肯定需要查看完整的模型或您发送到服务器的数据示例。虽然jQuery可以轻松地将对象中的基本值转换为包含在请求中,但使用嵌套对象可能会有问题。
值中的某些数据。可能不会发送值。