Вопрос по visual-studio-2008, asp.net, configuration – Настройка страницы по умолчанию для конфигурации сервера ASP.NET (Visual Studio)

27

Когда я собираю и запускаю свое приложение, я получаю список каталогов в браузере (also happens for sub folders), и я должен нажать на Index.aspx. Это сводит меня с ума.

Visual Studio 2008 ASP.NET Development Server 9.0.0.0

См. Ответ @Philippe Leybaert, который гласит: «Перейдите на страницу свойств проекта, выберите« Веб »; вкладка & quot; Lijo
Этот же вопрос (заданный после этого) также появляется с другим ответом,here Jonathan Williams

Ваш Ответ

7   ответов
11

Перейдите на страницу свойств проекта, выберите «Сеть». На вкладке и в верхней части (в разделе «Начать действие») введите имя страницы на странице «Определенная страница». коробка. В твоем случаеindex.aspx

Похоже, Default.html тоже работает.
Встроенный веб-сервер аппаратно использует Default.aspx в качестве страницы по умолчанию. Может быть, члены вашей команды используют Default.aspx вместо index.aspx? Или, может быть, они используют локальный IIS на своей машине для разработки.
Да, это работает для начальной страницы, но когда я просматриваю что-либо в подпапке, я снова получаю список папок. Dan Williams
Он работает, как и ожидалось, для нескольких других разработчиков в моей группе Dan Williams
Невозможно указать страницу по умолчанию во внутреннем веб-сервере Visual Studio (Cassini).
1
public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (Request.Url.AbsolutePath.EndsWith("/"))
        {
             Server.Transfer("~/index.aspx");
        }
    }
}
Этот ответ не совсем правильный. Если пользователь переходит на & quot; site.com/account/" пользователь будет перенаправлен на «/index.aspx"» вместо «/account/index.aspx"»;
Нет, я использую сервер VS webdev. Dan Williams
«Имитация - самая искренняя форма лести». - Чарльз Калеб Колтон
38

Щелкните правой кнопкой мыши веб-страницу, которую вы хотите использовать в качестве страницы по умолчанию, и выберите & quot; Сделать стартовой страницей & quot; всякий раз, когда вы запускаете веб-приложение из Visual Studio, оно открывает выбранную страницу.

Да, это работает для начальной страницы, но когда я просматриваю что-либо в подпапке, я снова получаю список папок. Dan Williams
0

Это один метод для опубликованного решения, чтобы показать SpeciFic страницу при запуске.

Вот пример маршрута для перенаправления на определенную страницу ...

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 },
            namespaces: new[] { "YourSolutionName.Controllers" }
        );
    }
}

По умолчанию метод индекса Home Controllers выполняется при запуске приложения, здесь вы можете определить свой.

Примечание. Я использую Visual Studio 2013 и & quot; YourSolutionName & quot; должен измениться на название вашего проекта ..

20

The built-in webserver is hardwired to use Default.aspx as the default page.

Проект должен иметь по крайней мере пустойDefault.aspx файл для преодоления проблемы с каталогом дляGlobal.asax.

:)

После добавления этого пустого файла все запросы могут быть обработаны в одном месте.

public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        this.Response.Write("[email protected] " + this.Request.Path + "?" + this.Request.QueryString);
        this.Response.StatusCode = 200;
        this.Response.ContentType = "text/plain";

        this.Response.End();
    }
}
0

Если вы используете IIS, а не сервер VS webdev, убедитесь, что Index.aspx является одним из ваших файлов по умолчанию и что просмотр каталогов отключен.

Нет, я использую сервер VS webdev. Dan Williams
8

Подобно ответу zproxy выше, я использовал следующий код в Gloabal.asax.cs для достижения этой цели:

public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (Request.Url.AbsolutePath.EndsWith("/"))
        {
            Server.Transfer(Request.Url.AbsolutePath + "index.aspx");
        }
    }
}

Похожие вопросы