网址路由问题多个部门

时间:2011-04-13 04:49:26

标签: asp.net

我希望我的网址看起来像这样www.website.com/browse/computers/consoles/playstation-3/en-NZ.aspx。它开始的部分 - 浏览我认为是我的控制器 - 计算机/控制台/ playstation-3是我的行动 - en-NZ.aspx是我想要命名的页面。我的三个问题是,当有多个部门时,如何设置动作部分?对于CultureInfo的en-NZ的正则表达式是什么/\{2, [a-z]}\-\{2, [A-Z]}我还需要该表达式将其用于两个小写字母对于火鸡,例如 tr 这是唯一有两个字母的语言代码。如何在{browse} / {* multipleDepartments} / part之后访问网址中的特定部门。

void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute(
    "browse",  //Name of the Route (can be anyuthting)
    "{*departments}/regexp goes here.aspx", // parameters not to sure about the* 
    "~/Departments.aspx"); //Page which will handles and process the request
}

检查我的评论 另外我创建了一个CTE表达式,它为我创建了一个Url,它构建了一个链接,如上面的例子/ computers / consoles / playstation-3,如果我必须把它放在参数中我如何在参数url中处理它,我是什么mean是参数在同一个查询中是多个,如Departments.aspx?a = computersb = consoles& c = playstation-3。我不知道查询有多深,所以如果在这种情况下处理参数,我该怎么办。

1 个答案:

答案 0 :(得分:4)

我认为你这样做是错误的...文化信息不应该是页面名称,它应该是网址的一部分。您通常不会为不同的语言创建单独的页面,而是使用资源来本地化页面。

使用URL路由时,路由的构成通常遵循模式{controller}/{action}/{id}

因此,您要查找的网址与此类似:

www.website.com/en-NZ/consoles/list/playstation-3

如需进一步参考,请查看以下优秀教程: