Автоматическая десериализация свойств C # - списки - PullRequest
3 голосов
/ 18 марта 2011

Я пытаюсь использовать автоматическую десериализацию в своем действии MVC следующим образом:

public void CreateEntitlementEntity(EntitlementEntityModel model) {
     // stuff
}

А вот класс, который я хочу десериализовать:

public class EntitlementEntityModel {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }

    public List<string> Domains { get; set; }

    public EntitlementEntityModel() { }
}

Я передаюJSON-объект данных для действия контроллера:

data: {
    FirstName: 'first',
    LastName: 'last',
    Email: 'email@email.com',
    Domains: ['a','b','c']
}

Все свойства десериализуются правильно, кроме списка строк.Я хотел бы превратить массив JSON в список, но вместо этого он дает мне список с одной строкой, строкой массива JSON.

Есть ли способ сделать это в .Net Framework 3.5?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 марта 2011

Если вы сбросите JsonValueProviderFactory в свой метод OnApplicationStarted () в вашем global.asax, он должен десериализовать объекты json во входные параметры действия вашего контроллера.

protected override void OnApplicationStarted()
{
    base.OnApplicationStarted();

    // for managing complex json objects
    ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
1 голос
/ 18 марта 2011

Может быть, вы можете использовать некоторые материалы из этой темы?

Десериализация массива json в класс .net

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