将index.html设置为默认页面

问题描述 投票:0回答:5

我有一个空的 ASP.NET 应用程序,并添加了一个 index.html 文件。我想将 index.html 设置为网站的默认页面。

我尝试右键单击index.html并将其设置为起始页,当我运行它时,网址是:

http://localhost:5134/index.html
但我真正想要的是当我输入:
http://localhost:5134
时,它应该加载索引.html 页面。

我的路线配置:

public class RouteConfig
    {
        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 }
            );
        }
    }
asp.net asp.net-mvc asp.net-mvc-routing
5个回答
33
投票

我在路线配置中添加了一条指令来忽略空路线,这解决了我的问题。

routes.IgnoreRoute(""); 

21
投票

正如 @vir 回答的那样,将

routes.IgnoreRoute("");
添加到
RegisterRoutes(RouteCollection routes)
,默认情况下您应该在 RouteConfig.cs 中找到它。

该方法可能如下所示:

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

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

原因是 ASP.NET MVC 接管 URL 管理,默认情况下,路由是所有无扩展 URL 都由 web.config 中定义的无扩展 URL 处理程序控制。

这里有详细的解释


8
投票
假设 Web 应用程序在 IIS 中运行,则可以在 web.config 文件中指定默认页面:

<system.webServer> <defaultDocument> <files> <clear /> <add value="index.html" /> </files> </defaultDocument> </system.webServer>
    

6
投票
创建一个新的控制器DefaultController。在索引操作中,我写了一行重定向:

return Redirect("~/index.html")

在RouteConfig.cs中,更改路由的controller=“Default”。

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

3
投票
一种解决方案是这样的:

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

我的意思是,在您的 MVC 项目中注释或删除此代码,以避免在发出初始请求时出现默认行为

http://localhost:5134/

index.html 必须位于解决方案的根目录中。

希望这有帮助!它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.