AJAX获取请求

时间:2013-09-10 10:20:18

标签: c# ajax asp.net-mvc jquery

请帮助,我被困在这里。将输入参数传递给我的C#控制器时遇到问题。我尝试了很多我在这里找到的东西,但仍然有一些错误。

这是代码:

  var a = $.ajax({        
    type:"GET",
    url: "/Weather1/Weather_get",
    data: "location=Paris%",
    contentType: 'application/json; charset=utf-8',
    cache: false, 
    success: function (data) {
        console.log(data);
    }, //succes
    error: function (data) {
        console.log(data);
    }//error
}) //ajax;

这是控制器:

[HttpGet]
public JsonResult Weather_get(String  location) etc etc...

我尝试过的所有东西都给了我输入位置NULL。我知道我的控制器工作正常,因为我从中获取数据,但我确实需要将数据用于特定位置,这就是我需要它的原因。也不想将其更改为POST,因为这是作业问题所以我必须在我的控制器中同时拥有HttpPost和HttpGet。

4 个答案:

答案 0 :(得分:1)

试试这个

 var place="Paris%";
 var a = $.ajax({        
    type:"GET",
    url: '@Url.Action("Weather_get","Weather1")',
    data: '{ "location":"' + place+ '"}',
    dataType: 'json',
    cache: false, 
    success: function (data) {
        console.log(data);
    }, //succes
    error: function (data) {
        console.log(data);
    }//error
}) //ajax;

答案 1 :(得分:1)

只需在控制器中包含参数名称以及您想要传递的值。

$.ajax({        
        type:"GET",
        url: '@Url.Action("Weather_get","Weather1")',
        data: { location:paris},
        dataType: 'json',
        cache: false, 
        success: function (data) {
            console.log(data);
        }, //succes
        error: function (data) {
            console.log(data);
        }//error
    }) //ajax;

答案 2 :(得分:0)

ASP.Net将HTTP请求URL绑定到控制器使用的模型的方式部分由路由引擎控制。

如果您导航到

/Weather1/Weather_get/Paris
你看到巴黎的数据吗?

如果是这样,你可以用这种方式修改你的AJAX     $阿贾克斯({
        键入: “GET”,         url:“/ Weather1 / Weather_get / Paris”         (等等。)     })

答案 3 :(得分:0)

你应该使用JSON.stringify。

类似的东西:

var data = {
   location: "Paris%"
};

var a = $.ajax({        
    type:"GET",
    url: "/Weather1/Weather_get",
    data: JSON.stringify(data),
    dataType: 'json',
    contentType: 'application/json',
    cache: false, 
    success: function (data) {
        console.log(data);
    }, //succes
    error: function (data) {
        console.log(data);
    }//error
}) //ajax;