gpt4 book ai didi

c# - jQuery post 数组 - ASP.Net MVC 4

转载 作者:可可西里 更新时间:2023-11-01 03:13:24 25 4
gpt4 key购买 nike

我今天花了大约 8 个小时来弄清楚这个问题。我看过很多解决方案,但无法获得相同的结果。我有一种预感,它与 ASP.Net 相对较新有关。

这是我尝试模仿但没有成功的最新问题。 https://stackoverflow.com/questions/10007722/post-array-as-json-to-mvc-controller#=

How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?

问题的基本概要:我有一组 json 对象,我想传递给我的 Controller 。当我传递数据时,它显示了例如 3 个项目,但它们的值没有传递,或者它只是显示没有传递任何内容。 Firebug 显示它通过了它,所以我假设某些设置不正确并且它不允许它在 C# 端正确设置该变量。

我已经尝试了一些东西,我将它们列在下面:设置 1:我试着 mock 我在第二个链接上看到的内容:

$.ajax({
type: 'Post',
cache: false,
url: '/Workflow/Home/UpdateStepPositions',
data: { 'steps': ['1','2','3'] },
async: false,
success: function (data) {
console.debug(data);
},
error: function (data) {
console.debug(data);
}
});

Controller
[HttpPost]
public ActionResult UpdateStepPositions(string[] steps){

var bresults = new {
Success = false,
Message = "Unable to update step positions."
};

return Json(bresults);
}

我什至无法让这个简单的设置工作。它进入函数并显示没有任何通过....

设置 2:

 list = new Array();
list.push({ "step": 1, "position": 1 });
list.push({ "step": 2, "position": 2 });
list.push({ "step": 3, "position": 3 });

$.ajax({
type: 'Post',
cache: false,
url: '/Workflow/Home/UpdateStepPositions',
data: JSON.stringify({ 'steps': list }),
async: false,
success: function (data) {
console.debug(data);
},
error: function (data) {
console.debug(data);
}
});

Controller
[HttpPost]
public ActionResult UpdateStepPositions(List<UpdatedSteps> steps){
var bresults = new {
Success = false,
Message = "Unable to update step positions."
};

return Json(bresults);
}

Class
public class UpdatedSteps {
public string Step { get; set; }
public string Position { get; set; }
}

任何人都可以阐明我所缺少的东西或为我指明正确的方向吗?希望这只是一个简单的新手错误!

最佳答案

MVC 通过 contentType 检测它接收到的数据类型。这是工作示例:

$(function () {
$.ajax({
type: 'Post',
dataType: 'json',
url: '/Workflow/Home/UpdateStepPositions',
data: JSON.stringify({ steps: ['1', '2', '3'] }),
contentType: 'application/json; charset=utf-8',
async: false,
success: function (data) {
console.debug(data);
},
error: function (data) {
console.debug(data);
}
});
});

现在一切正常,符合要求:

Content-Type:        application/json; charset=utf-8
X-Requested-With: XMLHttpRequest

和响应:

Content-Type:        application/json; charset=utf-8

关于c# - jQuery post 数组 - ASP.Net MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12572856/

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