Url rewriting MVC4URL重写

Url rewriting MVC4URL重写,url-rewriting,asp.net-mvc-4,Url Rewriting,Asp.net Mvc 4,我找不到如何在MVC4中创建“假”子文件夹 我想要一个像这样的URL AREA/CONTROLLERNAME/FAKEFOLDER/ACTION/ 去 AREA/CONTROLLERNAME/ACTION 可能吗?有什么建议吗? 谢谢 您尝试过使用路由吗?例如,假设您有一个Admin区域: public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Ad

我找不到如何在MVC4中创建“假”子文件夹

我想要一个像这样的URL

AREA/CONTROLLERNAME/FAKEFOLDER/ACTION/

AREA/CONTROLLERNAME/ACTION
可能吗?有什么建议吗?
谢谢

您尝试过使用路由吗?例如,假设您有一个
Admin
区域:

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

现在,当您请求
/admin/home/fakefolder/index
时,将执行
admin
are中
HomeController
操作。

您可以添加一个
映射路由
,该路由需要一个额外的参数(下面示例中的fakefolder)。然后,路由像往常一样发生,其中控制器的操作服务于页面。例如:

routes.MapRoute(
          name: "FakeFolder",
          url: "{controller}/{fakefolder}/{action}",
          defaults: new { controller = "home", action = "index", fakefolder = UrlParameter.Optional}
      );
请注意,使用此路由,您可以使用任何“文件夹名称”,因为它只是一个占位符

Url示例:
myController/SomeFakeFolder/someAction
将在
myController

中执行操作
someAction
,可能您定义了一些与此不兼容的其他路由。很难说没有看到您的实际路线定义。因为如果你在一个新项目中尝试这一点,添加一个管理区域,并用我在回答中显示的路径定义替换默认路径定义,它将完全按照预期工作。这让我相信你的代码中肯定还有其他东西。你是对的,我是个傻瓜。。我在App_Start/RouteConfig.cs中添加了它。。正确的位置当然在registration.cs.区域中。。我因为这个愚蠢的错误损失了一个小时:S。。无论如何,谢谢你!