2013-04-22 98 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) } 
});