2011-03-17 75 views
1

我允許JsonValueProviderFactory填充我的控制器操作的參數。其中一個參數是Cat的數組。 這可行,但有時只有一個Cat它不會作爲數組傳入,參數只是Cat。我正在使用ExtJs,它處理所有客戶端。ASP.Net MVC 3 JsonValueProviderFactory問題與接受數組參數的控制器方法

有沒有辦法處理這個服務器端?或者我需要破解ExtJs的請求,強制它始終發送一個數組?

[HttpPost] 
    public ActionResult Edit(int id, IEnumerable<Cat> Data){...} 

回答

1

一個適當的JSON請求應該是這樣的,如果你有一個單一的貓:

{ 'id': '123', 'Data': [ { 'Name': 'Felix', 'Age': 6 } ] } 

和多個貓:

{ 'id': '123', 'Data': [ { 'Name': 'Felix', 'Age': 6 }, { 'Name': 'Morgan', 'Age': 2 } ] } 
0

MVC嘗試的Cat到這一點,的Cat一個實例,而不是IEnumerable的單個實例綁定。通過陣列。

如果你要處理它的服務器端,你總是可以:

List<Cat> cats = new List<Cat>; 
cats.Add(argCat); 
... 

由於控制器參數是IEnumerable的,似乎你反正期待的一組數據。如果它具有商業意義,也許可以考慮單個實例的單獨控制器操作。