Подтвердить что ты не робот

Установите index.html в качестве страницы по умолчанию

У меня есть пустое приложение ASP.NET, и я добавил файл index.html. Я хочу установить index.html в качестве страницы по умолчанию для сайта.

Я попытался щелкнуть правой кнопкой мыши по index.html и установить в качестве стартовой страницы, и когда я запустил его, url: http://localhost:5134/index.html, но я действительно хочу, чтобы при вводе: http://localhost:5134, он должен загружать Страница index.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 }
            );
        }
    }
4b9b3361

Ответ 1

Я добавил инструкцию в конфигурацию маршрута, чтобы игнорировать пустые маршруты и решить мою проблему.

routes.IgnoreRoute(""); 

Ответ 2

Как ответил @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-адреса без расширения не контролируются обработчиком Url без расширения, определенным в web.config.

Здесь подробно объясняется .

Ответ 3

Предполагая, что веб-приложение работает в IIS, страница по умолчанию может быть указана в файле web.config:

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

Ответ 4

Одно из решений:

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

Я имею в виду, комментирую или удаляю этот код в вашем проекте MVC, чтобы избежать поведения по умолчанию, когда вы делаете начальный запрос http://localhost:5134/.

index.html должен быть в корне вашего решения.

Надеюсь, это поможет! Это работает для меня.

Ответ 5

Создайте новый контроллер DefaultController. В действии индекса я написал одну переадресацию строки:

return Redirect("~/index.html")

В RouteConfig.cs измените контроллер = "По умолчанию" для маршрута.

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