Ich habe 8 Stunden oder so heute versucht, dies herauszufinden. Ich habe viele Lösungen gesehen, kann aber nicht die gleichen Ergebnisse erzielen. Ich habe eine Ahnung, es hat alles damit zu tun, relativ neu in ASP.Net zu sein.jQuery Post-Array - ASP.Net MVC 4
Hier ist die letzte Frage, die ich versuchte, ohne Glück nachzuahmen. 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?
Grund Rundown von Problem: Ich habe ein Array von json Objekten ich meinen Controller zu übergeben möchte. Wenn ich die Daten übergebe, werden zum Beispiel 3 Elemente angezeigt, aber ihre Werte werden nicht übergeben oder es wird nur angezeigt, dass nichts übergeben wurde. Firebug zeigt, dass es übergeben wurde, also nehme ich an, dass etwas nicht richtig eingerichtet ist und es ihm nicht erlaubt, diese Variable auf der C# -Seite richtig einzustellen.
Ich habe ein paar Dinge ausprobiert und krank Liste sie unter: Setup 1: Ich habe versucht, spöttisch, was ich bei der zweiten Verbindung gesehen:
$.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);
}
Ich konnte nicht einmal arbeiten, die einfachen Aufbau erhalten. . Es wird auf die Funktion und zeigt, dass es nichts passiert war ....
Setup 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; }
}
Kann jemand etwas Licht auf w leuchten Hat ich vermisst oder in die richtige Richtung weisen? Hoffentlich ist es etwas einfaches und nur ein Neuling Fehler!
wenn es nicht unbedingt nötig, sollten Sie nicht verwenden 'async: false' in einem Ajax Anruf. AJAX sollte asynchron sein. Wenn Sie dies deaktivieren, kann der Browser während des Ajax-Anrufs nicht mehr reagieren. – MrOBrian