我需要有以下的路由逻辑:ASP.NET MVC 2参数数组
http://mydomain.com/myAction/ {根}/{child1}/{的child2}/...
我不知道什么是路由 的深度,所以我想在动作的签名看起来类似的东西:
public ActionResult myAction(string[] hierarchy)
{
...
}
不知道如何写这条路线。帮帮我?
非常感谢。
我需要有以下的路由逻辑:ASP.NET MVC 2参数数组
http://mydomain.com/myAction/ {根}/{child1}/{的child2}/...
我不知道什么是路由 的深度,所以我想在动作的签名看起来类似的东西:
public ActionResult myAction(string[] hierarchy)
{
...
}
不知道如何写这条路线。帮帮我?
非常感谢。
当您添加下面的映射:
routes.MapRoute("hierarchy", "{action}/{*url}"
new { controller = "Home", action = "Index" });
你可以在你的操作方法获取字符串 'URL':
public ActionResult myAction(string url)
{
...
}
然后容易获得的层次:
string[] hierarchy = url.Split('/');
使用类似方法可以从字符串值列表创建url:
string firstPart = hierarchy.Count() > 0: hierarchy[0] : string.Empty;
StringBuilder urlBuilder = new StringBuilder(firstPart);
for (int index = 1; index < hierarchy.Count(); index++)
{
urlBuilder.Append("/");
urlBuilder.Append(hierarchy[index]);
}
urlBuilder然后可以在操作环节中使用,例如:
<%= Html.ActionLink("Text", new { Controller="Home", Action="Index", Url=urlBuilder.ToString() }) %>
我还没有检查,但它似乎工作。渲染路线链接怎么样?我想传递一个数组作为路由数据。有任何想法吗? – Sonia 2010-09-04 11:46:44
我已经为帖子添加了一种方法。 – Jeroen 2010-09-04 15:32:57
完美的作品!这是一个风格问题,而不是使用编写urlBuilder,我使用了string.Join(“/”,strArray)。谢谢 – Sonia 2010-09-05 17:39:07