从MVC4中的mvc路由中删除区域名称和控制器名称

时间:2016-01-21 10:44:34

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

我正在尝试从URL中删除区域名称和控制器名称。我可以删除区域名称。但如果尝试删除控制器名称,则显示“页面未找到错误”。下面是我用来删除区域和控制器名称的代码片段。

public class HomeAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Home";
        }
    }

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

        //context.MapRoute(
        //   "Home_default",
        //   "{controller}/{action}/{id}",
        //   new { action = "Index", id = UrlParameter.Optional },
        //   new { controller = "(Home)" }
        //);

        context.MapRoute(
           "Home_default",
           "{action}/{id}",
           new { action = "Index", id = UrlParameter.Optional },
           new { controller = "(Home)" }
        );
    }
}

在registerarea功能中,前两条路线(已评论)完美运行。如果我使用第一个,则URL附带Area / Controller / Action。如果我使用第二个区域,则该区域不会出现在URL中。带有Controller / Action的URL。

在第三个中,我试图删除区域和控制器 我的第三条路线有什么不对劲。请建议

1 个答案:

答案 0 :(得分:0)

你试过这个:

routes.MapRoute("default", "{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional});