我正在使用ASP.Net MVC 2,我有一个小问题。我需要从值列表中生成一个URL。
使用以下代码:
RouteValueDictionary dic = new RouteValueDictionary();
dic.Add("mylist", new [] { 1, 2, 3 });
return helper.Action(dic["action"] as string, dic["controller"] as string, dic);
我得到的网址/whatever/System.Int32[]
显然不是我所追求的。
什么是ASP.Net MVC 2生成此类URL的首选方式?我知道modelbinder可以处理列表,但是如何生成它?
关于如何在MVC 3中完成的快速说明也将受到赞赏(如果方法不同)。
答案 0 :(得分:1)
看看这个先前的响应是否对你有帮助(mvc 3将是相同的 - 它与asp.net 4中的路由引擎相同)
ASP.NET MVC - Pass array object as a route value within Html.ActionLink(...)
答案 1 :(得分:0)
您总是可以使用ToString()
覆盖创建自己的List类,以打印您希望的方式。这似乎是最简单的(但也许是最“hackish”)方式。
public MyRouteList<T> : List<T>
{
public override string ToString()
{
return string.Join("&", this.Select(x => "list=" + x.ToString()));
}
}