我有以下网址:
这将转到以下控制器:
/FolderB/HomeController.cs
我需要使用此网址:http://localhost/SubComponent。
我不确定如何在asp.net MVC中完成。什么是这种类型的屏蔽,以及代码在哪里实现它?
我在RouteConfig.cs中尝试过以下操作,但它不起作用:
routes.MapRoute(
name: "SubComponent",
url: "SubComponent",
defaults: new { controller="Home", action="Index", id=UrlParameter.Optional},
namespaces: new[] { "MyNamespace" }
答案 0 :(得分:3)
这样做的一种简单方法是在MVC中添加另一条路由SubComponent
。
您可以通过查找路由的连接位置来添加路由,这通常位于Global.asax.cs
或名为RouteConfig
的类中,并添加您自己的路由:
routes.MapRoute(name: "SubComponent", url: "SubComponent/{id}", defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
添加路线的顺序很重要,因此请确保此MapRoute
的呼叫发生在所有其他路线之前。
如果需要,请指定一个区域。
答案 1 :(得分:1)
最新版本: https://msdn.microsoft.com/en-us/library/cc668201(v=vs.100).aspx
如果您使用的是ASP.NET 3.5 ASP.NET路由可能是一个不错的选择。
MSDN页面:msdn.microsoft.com/en-us/library/cc668201.aspx
在ScottGu博客上与ASP.NET MVC一起使用: weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx
在ASP.NET 3.5中使用它:www.techbubbles.com/aspnet/aspnet-35-url-routing/
如果您的网站在ASP.NET 2.0下运行,Helicon ISAPI Rewrite可能是一个很好的选择。这是一个IIS筛选器,可根据基于正则表达式的配置文件将请求重定向到您的页面。他们有一个网站的免费版本。
看看Helicon:www.isapirewrite.com
希望这会有所帮助。祝你好运
答案 2 :(得分:1)
对于ASP.NET MVC 5,请使用RouteAttribute。对于较旧的ASP.NET MVC版本,您可能不得不求助于其他开源(或您自己的自定义)实现,例如https://github.com/mccalltd/AttributeRouting