2013-04-03 48 views
-1

我有6个产品页面。其中一个产品页面将有6个辅助页面。静态内容二级页面需要什么结构?

我将如何为此创建控制器,以便最终获得干净的链接。

/Products/Product1 
/Products/Product2 
/Products/Product3 
/Products/Product4 
/Products/Product5 
/Products/Product6 
/Products/Product6/SecondaryPage1 
/Products/Product6/SecondaryPage2 
/Products/Product6/SecondaryPage3 
/Products/Product6/SecondaryPage4 
/Products/Product6/SecondaryPage5 
/Products/Product6/SecondaryPage6 

我已经调查区域,可以完成我想他们,但我没有任何运气服用区域名称和连字符,如果下划线都存在。我可以让控制器和操作连字符而不是区域。如果有人知道如何让该区域连字符,我将再次沿着该路线前进。

更多信息

这些都是静态的内容页面。没有涉及数据库。我将如何设置一个控制器来生成上面的URL?我的问题是关于辅助页面以及如何处理这些页面。区域是唯一的方法,如果是的话,我如何修改路由以允许区域名称中的连字符,因为我将来可能需要这样做?

+0

这完全不清楚你在尝试什么在这里做。你是什​​么意思,“让区域连字符”?这些网址是你所拥有的还是你想要的?你有什么控制器/操作以及你想要访问哪些路线?你需要提供更多的信息。 – 2013-04-03 21:39:57

回答

1

你的问题并没有什么意义,尤其是考虑到你想要的URL不包含任何连字符,但通常,一个区域的路由是由一个名为[AreaName]AreaRegistration.cs的文件控制的。该文件中的类中,有个方法:

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     "MyArea_default", 
     "MyArea/{controller}/{action}/{id}", 
     new { action = "Index", id = UrlParameter.Optional } 
    ); 
} 

所以,你可以很容易地改变通过改变这个默认路由的区域是如何在URL中表示:

"My-Area/{controller}/{action}/{id}", 

(注意加连字符。这只是一个字符串,它可以看起来像你喜欢的。URL中的区域前缀不必与实际区域名称相匹配。)