2011-03-17 79 views
3

我試圖使用自動反序列化在我的MVC行動,像這樣:C#自動屬性反序列化 - 列出

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 protected]', 
    Domains: ['a','b','c'] 
} 

所有屬性的正確反序列化除了噸他的字符串列表。我想將一個JSON數組轉換爲一個List,但它給了我一個包含一個字符串的列表,即JSON數組字符串。

有沒有一種方法可以在.Net Framework 3.5中實現這一點?

感謝

回答

1

也許你可以使用本主題中的一些輸入?

Deserializing json array into .net class

+0

我檢查了鏈接,但我沒有看到這將如何幫助我。我不問如何將數組反序列化爲一般意義上的列表,我問是否可以在MVC操作中使用自動(隱式?)反序列化來實現。 – Tbabs 2011-03-18 14:51:29

1

如果轉儲JsonValueProviderFactory到您的OnApplicationStarted()在Global.asax的方法,它應該反序列化JSON對象到您的控制器操作的輸入參數就好了。

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

    // for managing complex json objects 
    ValueProviderFactories.Factories.Add(new JsonValueProviderFactory()); 
+0

是否有類似於.Net Framework 3.5的解決方案? – Tbabs 2011-03-18 15:19:10

+0

我不確定你需要4.0才能做到這一點。它是MVC 2期貨中可用的ProviderFactory。它默認在MVC 3中註冊。 – Dusda 2011-03-18 23:06:56