Estoy intentando lo siguiente: Un modelo con un diccionario dentro lo envía en la primera solicitud de ajax y luego toma el resultado serializarlo de nuevo y enviarlo de vuelta al controlador.POST json dictionary
Esto debería probar que puedo recuperar un diccionario en mi modelo. No funciona
Aquí está mi prueba sencilla:
public class HomeController : Controller
{
public ActionResult Index (T a)
{
return View();
}
public JsonResult A(T t)
{
if (t.Name.IsEmpty())
{
t = new T();
t.Name = "myname";
t.D = new Dictionary<string, string>();
t.D.Add("a", "a");
t.D.Add("b", "b");
t.D.Add("c", "c");
}
return Json(t);
}
}
//model
public class T
{
public string Name { get; set; }
public IDictionary<string,string> D { get; set; }
}
El javascript:
$(function() {
var o = {
Name: 'somename',
"D": {
"a": "b",
"b": "c",
"c": "d"
}
};
$.ajax({
url: actionUrl('/home/a'),
contentType: 'application/json',
type: 'POST',
success: function (result) {
$.ajax({
url: actionUrl('/home/a'),
data: JSON.stringify(result),
contentType: 'application/json',
type: 'POST',
success: function (result) {
}
});
}
});
});
En el firebug JSON JSON recibida y el enviado son idénticos. Solo puedo suponer que algo se pierde en el camino.
¿Alguien tiene una idea de lo que estoy haciendo mal?
Posible duplicado de [Publicación de datos JSON en ASP.NET MVC] (http://stackoverflow.com/questions/4164114/posting-json-data-to-asp-net-mvc) –