2011-06-18 46 views
7

我想INT []數組添加到我的Url.Action是這樣的:在我看來我怎麼可能會增加整數列表路由

var routeData = new RouteValueDictionary(); 

for (int i = 0; i < Model.GroupsId.Length; i++) { 
    routeData.Add("GroupsId[" + i + "]", Model.GroupsId[i]); 
} 

Url.Action("Index", routeData) 

但在html的我越來越:

GroupsId%5B0%5D=1213&GroupsId%5B0%5D=1214 

,而不是:

GroupsId=1213&GroupsId=1214 

我需要它,因爲我有一個複選框列表,當我發佈後,我綁定groupIds爲int [],然後通過查看我的導出按鈕與Url.Action不能正常工作對我來說。

回答

6

由於重複查詢字符串參數名稱,您不能使用標準助手生成此類url。這是不幸的,但事情是這樣。

這裏就是你可以代替爲了產生這樣的網址:

var baseUrl = Url.Action("Index", "SomeController", null, Request.Url.Scheme); 
var uriBuilder = new UriBuilder(baseUrl); 
uriBuilder.Query = string.Join("&", Model.GroupsId.Select(x => "groupsid=" + x)); 
string url = uriBuilder.ToString();