Читать объект JSON в контроллере - PullRequest
0 голосов
/ 25 марта 2011

У меня есть следующий код JQuery;

var selectedval = $("#PaymentApplication_System").val();
var text = $("#btnSave").val();
var payVal = $("#PaymentApplication_Amount").val();
var dbobj = [{ param: text, value: payVal}];
var jlist = $.toJSON(dbobj);

, который дает мне следующий объект json;

[{"param":"Update Payment","value":"50.00"}]

Я использую MVC 2. Как мне прочитать значения из объекта в моем контроллере ???

Ответы [ 3 ]

2 голосов
/ 25 марта 2011

MVC 2 автоматически не преобразует вашу строку JSON в объект C #.Вы можете использовать JavaScriptSerializer , который находится в System.Web.Script.Serialization.Пример:

public ActionResult Index(string customerJson)
{
    var serializer = new JavaScriptSerializer();
    var customer = serializer.Deserialize<Customer>(customerJson);

    return View(customer);
}

Это было бы неплохо как метод расширения (или поместить его в базовый контроллер, если он у вас есть):

public static class ControllerExtensions
{
    public T JsonDeserialize<T>(this Controller instance, string json)
    {
        var serializer = new JavaScriptSerializer();
        return serializer.Deserialize<T>(json);
    }
}

Затем вы можете использовать его как

public ActionResult Index(string customerJson)
{
    var customer = this.JsonDeserialize<Customer>(customerJson);

    return View(customer);
}
1 голос
/ 25 марта 2011

Я думаю, что этот пост может помочь, который имеет похожую проблему:

Десериализация объектов JSON в контроллере Asp.Net MVC

0 голосов
/ 25 марта 2011

MVC 2 не преобразует объекты JSON в модели, в то время как MVC 3 делает.

Вы должны использовать JSON.net .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...