2013-04-22 51 views
0

我正嘗試將changePage函數從jQuery Mobile綁定到一個控制器/操作,並將int數組作爲參數。.Net MVC4和jQuery Mobile changePage或jQuery ajax

該行動的定義如下:

[HttpPost] 
public ActionResult MessageHistory(int[] ids) 

如果使用jQuery AJAX像:

​​

該參數以及綁定和陣列isn't空。

但是,如果使用jQuery Mobile的changePage像:

$.mobile.changePage("MessageHistory", { 
    type: "post", 
    data: JSON.stringify({ ids: messageIds }) 
}); 

的數組爲null。

尋找請求中的差異我發現問題可能是請求beign的內容類型,但我無法在changePage函數中更改它。

我也嘗試過使用自定義ModelBinder,但值也爲null。

我該怎麼辦?

謝謝!

回答

1

好的我發現了一個簡單的解決方案,我不太喜歡但解決了這個問題。

改變了行動定義:

public ActionResult MessageHistory(string strIds) 

另外在操作字符串轉換爲一個int數組:

int[] ids = JsonConvert.DeserializeObject<int[]>(strIds); 

最後changePage呼籲:

$.mobile.changePage("MessageHistory", { 
    type: "post", 
    data: { strIds: JSON.stringify(messages) } 
});