POST json dictionary

Я пробую следующее: модель со словарем внутри отправляет ее по первому запросу ajax, затем снова сериализует результат и отправляет обратно контроллеру.

Это должно проверить, что я могу вернуть словарь в свою модель. Это не работает

Вот мой простой тест:

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; }
}

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) {
                }
            });
        }
    });
});

В firebug полученный и отправленный json идентичны. Могу только предположить, что что-то теряется по пути.

У кого-нибудь есть идея, что я делаю неправильно?

22
задан abatishchev 19 March 2012 в 17:56
поделиться