使用MVC更改默认页面

时间:2016-10-22 08:24:12

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

我想将MVC应用程序的默认页面mydomain.com/Views/Home/Index.chtml更改为指向应用程序根目录mydomain.com/Default.aspx中的另一个默认页面。

这是MVC默认MapRoute的默认配置。如何更改配置以指向mydomain.com/Default.aspx?我是MVC的新手,我正在尝试理解RegisterRoutes函数的工作原理。

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

3 个答案:

答案 0 :(得分:1)

URL Rooting in ASP.NET (Web Forms) - chsakell's Blog开始,在默认MVC路由之前添加:

routes.MapPageRoute("default", "", "~/Default.aspx");

您也可以使用过滤器完成此操作,但在Index的{​​{1}}操作中进行重定向可能最简单。

HomeController

答案 1 :(得分:0)

我认为更清洁,更正确的方法是将您的aspx页面迁移到cshtml视图并将其作为默认路由添加到您的route.config

否则,解决方法是从默认路由重定向到aspx页面。

查看Scott的博客here

答案 2 :(得分:0)

您必须设置路由配置。

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Admin", action = "Index", id = UrlParameter.Optional }
        ).DataTokens.Add("area", "AdminMaster");

此处AdminMaster为Area,Conttroller Name为Admin,Action Name为Index。 如果您在另一个区域中的默认页面,那么您还必须指定区域。

谢谢。