请帮助,我被困在这里。将输入参数传递给我的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。
答案 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;