2011-04-13 95 views
0

我希望我的网址看起来像这样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之后访问网址中的特定部门。Url路由问题多个部门

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 
} 

检查我的意见 此外,我已经创建了createds的URL,我就建立像例如上面的链接/电脑/游戏机/游戏机-3,如果我不得不把在参数如何做一个CTE表达我在参数url中处理了这个问题,我的意思是这个参数在同一个查询中会是多个,比如Departments.aspx?a = computersb =控制台& c = playstation-3。我不知道查询有多深,所以如果在这种情况下处理参数,我该怎么办。

回答

4

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

通过URL路由,通常路由的构成遵循{controller}/{action}/{id}的模式。

那么您正在寻找路由的URL将类似于此:

​​

更多参考,看看这些好的教程:

+0

+1我的想法正好。文化信息绝对不是网页的名称。我会进一步说,如果这是用于l10n,它应该是一个参数,而不是URL的一部分。 – Elad 2011-04-13 11:11:09