Mam ajax słupek budowany tak:Ajax stanowisko do kontrolera ASP.net MVC - Właściwości obiektu są nieważne
var myData = [
{
id: "a",
name: "Name 1"
},
{
id: "b",
name: "Name 2"
}
];
$.ajax({
type: 'POST',
url: '/myurl/myAction',
data: { items: myData },
dataType: 'json',
error: function (err) {
alert("error - " + err);
}
});
i kontroler MVC:
[HttpPost]
public JsonResult MyAction(MyClass[] items)
{
}
MyClass
jest po prostu prosta reprezentacja danych:
public class MyClass {
public string Name {get; set; }
public string Id {get; set; }
}
Kiedy javascript wysyła żądanie postu, działanie kontrolera nie es rzeczywiście otrzymują 2 przedmioty, jednak właściwości (id, nazwa) w tych pozycjach są zerowe.
Sprawdzanie wniosek w Skrzypek, ciało wygląda następująco:
Name | Value
items[0][Name] | Name 1
items[0][Id] | a
items[1][Name] | Name 2
items[1][Id] | b
Czy coś przeoczyłem?
tylko domyślać, może dlatego, że właściwości te są małe litery w javascript i wielkimi literami w języku C#. – Tallmaris
Nie, to nie to. Serializator JSON nie rozróżnia wielkości liter. –
Kolejny scenariusz, w którym właściwości są zerowe - http://stackoverflow.com/questions/18124405/json-object-perties-are-coming-coming-as-null – Lijo