MVC操纵URL(路由),有可能吗?

时间:2016-02-02 13:28:05

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有一个使用此模式的网站。

http://www.domain.com/product/ ...

现在我的问题是,我需要创建一个将使用此URL模式的子网站,我试图更改路由但没有成功。

http://www.domain.com/companyname/product/ ...

如何在不破坏当前路由的情况下在URL中注入公司名称?

由于 Niden

1 个答案:

答案 0 :(得分:1)

三种方式:

  1. 如果它是相对静态的,您可以在评论中遵循Andy的建议,并将该网站发布到虚拟目录companyname中。假设您已正确使用UrlHelper扩展程序生成网址,而不仅仅是硬编码路径,那么一切都会正常工作。

  2. 您可以创建“公司名称”区域。区域的默认路由为/area/controller/action。这样就可以得到你想要的URL结构。但是,区域有些隔离,因此您需要将控制器和视图复制到区域的目录中。虽然,您可以从区域中的主应用程序继承控制器以重用代码。

  3. 只需更改默认路线/添加新路线:

    routes.MapRoute(
        "CompanyDefault",  
        "{company}/{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" }
    );
    
    // default route here