Sto lavorando su un sito Web che pubblicherà un oggetto JSON (utilizzando il metodo jQuery Post) sul lato server.In ASP.NET MVC, deserializzare JSON prima o nel metodo di azione del controllore
{
"ID" : 1,
"FullName" : {
"FirstName" : "John",
"LastName" : "Smith"
}
}
Allo stesso tempo, ho scritto classi sul lato server per questa struttura dati.
public class User
{
public int ID { get; set; }
public Name FullName { get; set;}
}
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Quando eseguo il sito web con seguente codice nella mia classe di controllo, la proprietà FullName non viene deserializzato. Che cosa sto facendo di sbagliato?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Submit(User user)
{
// At this point, user.FullName is NULL.
return View();
}
MVC non supporta JSON deserializzazione out-of-the-box, ma stiamo pensando di aggiungerlo per la v2. Nel frattempo, puoi utilizzare JavaScriptSerializer per trasformare il corpo della richiesta in un oggetto utente completamente idratato. – Levi
@Levi - che dovrebbe essere un post di risposta;) – womp
Questo è strano; in qualche modo la proprietà ID è stata deserializzata correttamente. Se dovessi usare JavaScriptSerializer, il parametro di input su Submit() dovrebbe essere di tipo Object? – weilin8