3

次のように、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 配列文字列という 1 つの文字列を含むリストが返されます。

.Net Framework 3.5 でこれを達成する方法はありますか?

ありがとう

4

2 に答える 2

1

たぶん、このスレッドからの入力を使用できますか?

json 配列を .net クラスに逆シリアル化する

于 2011-03-17T23:11:01.250 に答える
1

JsonValueProviderFactory を global.asax の OnApplicationStarted() メソッドにダンプすると、json オブジェクトがコントローラー アクションの入力パラメーターに正しく逆シリアル化されます。

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

    // for managing complex json objects
    ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
于 2011-03-17T23:25:15.730 に答える