Spędziłem dzisiaj około 8 godzin próbując to zrozumieć. Przeglądałem wiele rozwiązań, ale nie mogę uzyskać takich samych wyników. Mam przeczucie, że ma to coś wspólnego z byciem względnie nowym w ASP.Net.jQuery post array - ASP.Net MVC 4
Oto najnowsze pytanie, które próbowałem naśladować bez powodzenia. 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?
Podstawowe Rundown problemu: Mam tablicę obiektów json chciałbym przejść do mojego kontrolera. Kiedy przekazuję dane, które pokazują, powiedzmy na przykład 3 elementy, ale ich wartości nie są przekazywane lub po prostu pokazuje, że nic nie zostało przekazane. Firebug pokazuje, że przekazał go, więc zakładam, że coś nie jest poprawnie ustawione i nie pozwala mu poprawnie ustawić tej zmiennej po stronie C#.
Próbowałem kilka rzeczy i źle ich lista poniżej: Konfiguracja 1: Próbowałem szyderczy co widziałem na drugim linku:
$.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);
}
nie mogłem nawet dostać takie proste konfigurację roboczą. . To staje się funkcją i pokazuje nic nie przeszły ....
Konfiguracja 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; }
}
Czy ktoś może rzucić nieco światła na wag czapkę, której mi brakuje, czy wskazujesz we właściwym kierunku? Mam nadzieję, że jest to coś prostego i tylko błąd początkującego!
chyba że jest to absolutnie konieczne, nie należy używać 'asynchroniczny: FALSE w sposób wywołanie ajax. AJAX ma być asynchroniczny, przez wyłączenie tego możesz spowodować, że przeglądarka przestanie reagować podczas wywołania ajax. – MrOBrian