Как установить стартовую страницу для отладки в приложении ASP.NET MVC?

131

Как начать отладку приложения в корне приложения? Например: http: // localhost: 49742 /

Я всегда получаю страницу, которой не существует, например: http: // localhost: 49742 / Views / Home / About.aspx

Обратите внимание, что можно начать с http: // localhost: 49742 / Views / Home / About

ставка
источник
связанные: stackoverflow.com/questions/2821796/…
JNF

Ответы:

218

Перейдите в свойства вашего проекта и установите свойство начальной страницы.

  1. Перейдите в Свойства проекта
  2. Перейдите на вкладку Интернет
  3. Выберите конкретную страницу радиокнопку
  4. Введите желаемый URL в текстовое поле " Определенная страница".
Марк Симанн
источник
1
@ Mark - вот хорошая ссылка, которая описывает процесс более подробно - stephenwalther.com/blog/archive/2008/07/10/… . Я бы добавил это в ваш ответ.
RichardOD
22
+1 Обязательно введите его на шаге 4. При выборе с помощью кнопки [...] будет создан поддельный URL-адрес: D
P.Brian.Mackey
10
Если вы просто тестируете и работаете с шаблоном проекта MVC по умолчанию в VS.NET 2010, просто удалите все значения для начальной страницы, а затем выполните отладку проекта. Вы попадете на главную страницу «Добро пожаловать в ASP.NET MVC!» стр.
atconway
3
В дополнение к вышеуказанным шагам вам также необходимо убедиться, что вы правильно выбрали запускаемый ПРОЕКТ (если у вас несколько проектов, недостаточно настроить страницу по умолчанию). Щелкните правой кнопкой мыши проект в обозревателе решений и установите его как запускаемый проект. Имя проекта будет выделено жирным шрифтом в дереве решений.
Jazimov 01
3
@ Отметьте - на шаге 4 вы можете оставить текстовое поле пустым и убедиться, что выбран переключатель «Определенная страница», и отладка начнется в корне приложения.
amraby
22

Хотя у вас может быть страница по умолчанию в проекте MVC, более традиционной реализацией представления по умолчанию будет использование контроллера по умолчанию, реализованного в global.asax с помощью метода RegisterRoutes (...). Например, если вы хотите, чтобы ваш контроллер Public \ Home был вашим маршрутом / представлением по умолчанию, код будет следующим:

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

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Public", action = "Home", id = UrlParameter.Optional } // Parameter defaults
        );

    }

Для того, чтобы это работало, у вас должна быть установлена ​​начальная страница в проекте.

1c1cle
источник
Вау ... Это действительно работает ДАЖЕ после публикации на сервере (что не относится к принятому ответу, по крайней мере, не для меня), так что это действительно хороший ответ
Антуан Пеллетье
10

Это работает для меня на конкретной странице для MVC:

/Home/Index

Обновление: в настоящее время я просто использую косую черту в текстовом поле «Определенная страница», и это переводит меня на домашнюю страницу, как определено в маршрутизации:

/
Грег Гам
источник
Хороший простой ответ. Но будьте осторожны - если вы ввели что-то похожее на начальный URL-адрес, вы все равно получите сообщение о недопустимом URL-адресе (даже если он в настоящее время не выбран). Итак, выберите «Начальный URL», удалите в нем текст, ЗАТЕМ установите для свойства «Определенная страница» относительный путь, как указано выше.
Энди Браун
7

Выбор конкретной страницы в свойствах проекта не решает мою проблему.

В MVC 4 откройте App_Start / RouteConfig.cs

Например, если вы хотите изменить стартовую страницу на « Вход» :

routes.MapRoute(
        "Default", // Route name
        "",        // URL with parameters
        new { controller = "Account", action = "Login"}  // Parameter defaults
    );
cihata87
источник
1

Если вы хотите начать с «корня приложения», как вы описываете, щелкните правой кнопкой мыши на странице Default.aspx верхнего уровня и выберите «Установить в качестве начальной страницы». Нажмите F5, и все готово.

Если вы хотите начать с другого действия контроллера, см. Ответ Марка.

RichardOD
источник
1
Это работает для MVC? Для меня он пытается запустить страницу ASPX и не выполняет маршрутизацию.
Robaticus
1

Повторно посещая эту страницу, я хочу поделиться с другими дополнительной информацией.

Среда отладки (с использованием Visual Studio)

1a) Ссылка Стивена Уолтера для установки стартовой страницы в MVC с использованием свойств проекта применима только при отладке приложения MVC.

1b) Щелкните правой кнопкой мыши страницу .aspx в обозревателе решений и выберите «Установить как начальную страницу».

Примечание: в обоих вышеупомянутых случаях параметр стартовой страницы распознается только вашим Visual Studio Development Server. Он не распознается вашим развернутым сервером.

Развернутая среда

2a) Чтобы установить стартовую страницу, предполагая, что вы не изменили ни одну из маршрутов по умолчанию, измените содержимое /Views/Home/Index.aspx, чтобы сделать «Server.Transfer» или «Response.Redirect» по своему желанию. стр.

2b) Измените маршрутизацию по умолчанию в global.asax.cs на желаемую страницу.

Есть ли другие варианты, о которых знают читатели? Какое из вышеперечисленных (включая ваш собственный вариант) было бы вашим предпочтительным решением (и, пожалуйста, поделитесь с нами почему)?

Сид
источник