2013-07-17 48 views
0

創建MVC查詢字符串是否有可能,在代碼中,生成將被綁定到控制器變量這樣從列表中

MyController(List<long?> queryList) 
{ 

查詢字符串//我想queryList要綁定使用defualt模型活頁夾。但我不知道如何生成此處將 }

接受我的代碼源字符串,我需要生成這樣

GenerateBindable(List<long?> list) 
{ 
    string listQueryString=""; 
    .... 
    //What do I need to do here? 
} 

我試圖找到一個函數的查詢字符串這是一個內置的函數,但即使是ActionLink助手也沒有做到我所期望的。這導致了這個

我/ URL /路徑?A = System.Collections.Generic.List%601%5BSystem.Nullable%601%5BSystem.Int64%5D%5D

好像它只是做了一個ToString在收集上,這顯然是行不通的。

回答

0

您可以通過在控制器中創建路由值字典來實現此目的。

var rv = new RouteValueDictionary(); 
int i = 0; 
queryList.ForEach(t => { rv.Add("a[" + (++i) + "]", t); }); 

比方說,你加入這條路線值字典到viewbag(或模型)。我將使用viewbag進行演示,但我始終建議您使用模型。

ViewBag.RouteValues = rv; 

最後在您的視圖中,使用路由值字典創建一個操作鏈接。

@Html.ActionLink("About", "About", (RouteValueDictionary)ViewBag.RouteValues)