Вопрос по visual-studio-2008, asp.net, configuration – Настройка страницы по умолчанию для конфигурации сервера ASP.NET (Visual Studio)
Когда я собираю и запускаю свое приложение, я получаю список каталогов в браузере (also happens for sub folders), и я должен нажать на Index.aspx. Это сводит меня с ума.
Visual Studio 2008 ASP.NET Development Server 9.0.0.0
Перейдите на страницу свойств проекта, выберите «Сеть». На вкладке и в верхней части (в разделе «Начать действие») введите имя страницы на странице «Определенная страница». коробка. В твоем случаеindex.aspx
public class Global : System.Web.HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.AbsolutePath.EndsWith("/"))
{
Server.Transfer("~/index.aspx");
}
}
}
Щелкните правой кнопкой мыши веб-страницу, которую вы хотите использовать в качестве страницы по умолчанию, и выберите & quot; Сделать стартовой страницей & quot; всякий раз, когда вы запускаете веб-приложение из Visual Studio, оно открывает выбранную страницу.
Это один метод для опубликованного решения, чтобы показать 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; должен измениться на название вашего проекта ..
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();
}
}
Если вы используете IIS, а не сервер VS webdev, убедитесь, что Index.aspx является одним из ваших файлов по умолчанию и что просмотр каталогов отключен.
Подобно ответу 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");
}
}
}