gpt4 book ai didi

jquery - Ajax get/post 使用相同的方法

转载 作者:行者123 更新时间:2023-12-01 01:14:21 24 4
gpt4 key购买 nike

我正在尝试使用ajax Get 方法从我的 Controller 调用服务器方法,其中我提供了数据。方法接受参数做一些工作并返回一个列表。我想用同样的方法发帖。

当我尝试执行此操作时,出现未定义的错误。

我的 Get 方法如下所示:

$.ajax({
traditional:true,
type: "GET",
url: "/Graphs/chartData",
data: { id: 0, WeatherAll: 0, paramSites: 0 },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert(r);
},
failure: function (r) {

alert(r.d);
},
error: function (r) {
alert(r.d);
}
});

我的 Post 方法有一些像这样的谷歌图表:

google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
var options = {
backgroundColor: 'transparent',
title: 'Humidity/Temperature Measure',
};
var idSite = $('#DDLSites').val();
var idWeatherALL = $('#DDLParameterWeatherAll').val();
var idParamSites = $('#DDLParameterWeatherSites').val();
$.ajax({
traditional: true,
type: "POST",
url: "/Graphs/chartData",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert(r);
var data = google.visualization.arrayToDataTable(r);
var options = {
title: 'Humidity/Temperature Measure for Site 1',
'backgroundColor': 'transparent',
vAxis: {
title: 'Temperature/Humidity',
},
hAxis: {
title: 'Time',
},
};
var chart = new google.visualization.AreaChart($("#chart")[0]);
chart.draw(data, options);
},
failure: function (r) {

alert(r.d);
},
error: function (r) {
alert(r.d);
}
});
}

我的 ChartData 方法是:

[AcceptVerbs("Get", "Post")]
public JsonResult chartData(int id, int WeatherAll,int paramSites)
{
string ids = Convert.ToString(id) + Convert.ToString(WeatherAll) + Convert.ToString(paramSites);
List<object> chartData = new List<object>();
chartData.Add(new object[]
{
"Date Time", "Temp", "Humidity"
});
////Some Code here
return Json(chartData);
}

我不知道该怎么做。请告诉我任何方便的方式。谢谢

最佳答案

这是我的解决方案,我使用 AJAX 调用创建了示例操作。

让 Controller 操作为 -

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public JsonResult Data(int id, string s)
{
return Json("Test", JsonRequestBehavior.AllowGet);
}

让 HTML 中的按钮为 -

<input type="button" value="GET" id="get" />
<input type="button" value="POST" id="post" />

用于进行 AJAX POST 和 GET 的 JQuery 代码 -

@section scripts{
<script>
$(function() {
$("#get").click(function() {
$.ajax({
traditional: true,
type: "GET",
url: "/home/data",
data: { id: 2, s : 'Test'},
success: function (r) {
alert(r);
},
failure: function (r) {

alert(r.d);
},
error: function (r) {
alert(r.d);
}
});
});

$("#post").click(function () {
$.ajax({
traditional: true,
type: "POST",
url: "/home/data",
data: JSON.stringify({ id: 4, s: 'Test' }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert(r);
},
failure: function (r) {

alert(r.d);
},
error: function (r) {
alert(r.d);
}
});
});
})
</script>
}

确保存在正确的路由配置条目 -

 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}/{s}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, s = UrlParameter.Optional }
);

当您进行 AJAX GET 时 -

enter image description here

当您进行 AJAX POST 时 -

enter image description here

关于jquery - Ajax get/post 使用相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com