如何掩盖asp.net MVC URL?

时间:2015-09-11 18:26:12

标签: asp.net-mvc

我有以下网址:

  

http://localhost/FolderB/Index

这将转到以下控制器:

  

/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" }

3 个答案:

答案 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