ASP.NET MVC默认URL视图

我试图将我的MVC应用程序的默认URL设置为我应用程序区域内的视图。 该区域被称为“ 普通 ”,控制器“ 主页 ”和视图“ 索引 ”。

我已经尝试将web.config的表单部分中的defaultUrl设置为“ 〜/ Common / Home / Index ”,但没有成功。

我也尝试在global.asax中映射一个新的路由,因此:

routes.MapRoute(
        "Area",
        "{area}/{controller}/{action}/{id}",
        new { area = "Common", controller = "Home", action = "Index", id = "" }
    );

再次,无济于事。


您列出的路线只有在明确输入网址时才有效:

yoursite.com/{area}/{controller}/{action}/{id}

那条路线说的是:

如果我得到的请求有一个有效的{area} ,该{area}有效的{controller}以及该{controller}中有效的{action} ,然后将其路由到那里。

如果他们只是访问您的网站yoursite.com ,您希望默认使用该控制器:

routes.MapRoute(
    "Area",
    "",
    new { area = "Common", controller = "Home", action = "Index" }
);

这说的是,如果他们没有追加任何东西给http://yoursite.com然后将其路由到以下操作: Common/Home/Index

另外,把它放在路由表的顶部。

确保你也让MVC知道注册你在应用程序中的区域:

将以下内容放入Global.asax.cs文件的Application_Start方法中:

AreaRegistration.RegisterAllAreas();

你需要做的是:

  • 从global.asax.cs中删除默认路由

    //// default route map will be create under area
    //routes.MapRoute(
    //    name: "Default",
    //    url: "{controller}/{action}/{id}",
    //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    //);
    
  • 更新Common区域中的SecurityAreaRegistration.cs

  • 添加以下路由映射:

     context.MapRoute(
        "Default",
        "",
        new { controller = "Home", action = "Index", id = "" }
    );
    

  • 你在做什么似乎是正确的。 如果我不得不猜测,我会说这是由于你运行你的网站的方式。 在Visual Studio中,如果您在按F5时选择了特定的视图,那么该视图将成为起始URL - 尝试选择Project,然后按F5?

    链接地址: http://www.djcxy.com/p/80083.html

    上一篇: ASP.NET MVC Default URL View

    下一篇: EC2Config + forward logs and metrics to cloudwatch