Когда я создаю и запускаю свое приложение, я получаю список каталогов в браузере (также происходит для подпапок), и мне нужно щелкнуть Index.aspx. Это сводит меня с ума.
Сервер разработки Visual Studio 2008 ASP.NET 9.0.0.0
Когда я создаю и запускаю свое приложение, я получаю список каталогов в браузере (также происходит для подпапок), и мне нужно щелкнуть Index.aspx. Это сводит меня с ума.
Сервер разработки Visual Studio 2008 ASP.NET 9.0.0.0
Встроенный веб-сервер жестко настроен на использование Default.aspx в качестве страницы по умолчанию.
В проекте должен быть как минимум пустой файл Default.aspx
, чтобы решить проблему со списком каталогов для Global.asax
.
:)
Как только вы добавите этот пустой файл, все запросы будут обрабатываться в одном месте.
public class Global : System.Web.HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
this.Response.Write("hi@ " + this.Request.Path + "?" + this.Request.QueryString);
this.Response.StatusCode = 200;
this.Response.ContentType = "text/plain";
this.Response.End();
}
}
Щелкните правой кнопкой мыши веб-страницу, которую вы хотите использовать в качестве страницы по умолчанию, и выберите «Установить как стартовую страницу», когда вы запускаете веб-приложение из Visual Studio, оно будет открывать выбранную страницу.
Перейдите на страницу свойств проекта, выберите вкладку «Интернет» и сверху (в разделе «Начать действие») введите имя страницы в поле «Конкретная страница». В вашем случае 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");
}
}
}
Один из способов добиться этого — добавить параметры DefaultDocument в файл Web.config.
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="DefaultPage.aspx" />
</files>
</defaultDocument>
</system.webServer>
Если вы работаете с IIS, а не с сервером VS webdev, убедитесь, что Index.aspx является одним из ваших файлов по умолчанию, а просмотр каталогов отключен.
Этот один из методов опубликованного решения для отображения конкретной страницы при запуске.
Вот пример маршрута для перенаправления на определенную страницу...
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" }
);
}
}
По умолчанию метод индекса домашних контроллеров выполняется при запуске приложения, здесь вы можете определить свой.
Примечание. Я использую Visual Studio 2013, и «YourSolutionName» должно быть изменено на имя вашего проекта.
Я не уверен, какую структуру вы используете, но в ASP.NET MVC вы можете просто перейти в папку App_Start и открыть файл RouteConfig.cs. Код должен выглядеть примерно так:
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 }
);
}
}
Вы можете изменить целевую страницу в последней строке кода после defaults
.