我有一个使用此模式的网站。
http://www.domain.com/product/ ...
现在我的问题是,我需要创建一个将使用此URL模式的子网站,我试图更改路由但没有成功。
http://www.domain.com/companyname/product/ ...
如何在不破坏当前路由的情况下在URL中注入公司名称?
由于 Niden
答案 0 :(得分:1)
三种方式:
如果它是相对静态的,您可以在评论中遵循Andy的建议,并将该网站发布到虚拟目录companyname
中。假设您已正确使用UrlHelper
扩展程序生成网址,而不仅仅是硬编码路径,那么一切都会正常工作。
您可以创建“公司名称”区域。区域的默认路由为/area/controller/action
。这样就可以得到你想要的URL结构。但是,区域有些隔离,因此您需要将控制器和视图复制到区域的目录中。虽然,您可以从区域中的主应用程序继承控制器以重用代码。
只需更改默认路线/添加新路线:
routes.MapRoute(
"CompanyDefault",
"{company}/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
// default route here