ASP.NET MVC 3 - 404 при запуске приложения - PullRequest
0 голосов
/ 17 ноября 2011

Я унаследовал приложение ASP.NET MVC 3. Я ничего не знаю о MVC 3. Я использую веб-формы ASP.NET, хотя в течение 5 лет. Когда я пытаюсь запустить приложение из Visual Studio, я получаю 404. Браузер указывает на http://localhost/Account/Logon. Я заметил, что в моем проекте есть:

  • / Контроллеры / AccountController.cs
  • / Views / Account / LogOn.cshtml

Я предполагаю, что это то, что должно быть запущено. Я установил точку останова в Global.asax.cs и обнаружил, что меня перенаправляют на эту страницу через следующее событие:

void WSFederationAuthenticationModule_AuthorizationFailed(object sender, AuthorizationFailedEventArgs e)
{
  e.RedirectToIdentityProvider = false;
  HttpContext.Response.Redirect("/Account/Logon");
}

Когда я запускаю приложение, я получаю 404. Я полностью теряюсь в том, как решить эту проблему. Я также не знаю, как «Сделать стартовой страницей» в мире MVC. Может кто-нибудь помочь мне преодолеть это препятствие? Я просто хочу запустить приложение. Спасибо вам ОЧЕНЬ ОЧЕНЬ большое!

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Если вы позвоните

http://localhost/Account/Logon

MVC, если вы не изменили ни одного маршрута в global.asax, ищет

  • Контроллер с именем " Учетная запись "

  • метод " LogOn " в этом контроллере.

Если ваш ActionMethod «Account.LogOn» возвращает View, MVC просматривает каталог Views / Account / и пытается найти вас LogOn View.

Много дополнительной информации:

Asp.NET MVC

Блог Фила Хаака

Блог Скотта Гатри

Надеюсь, это поможет

1 голос
/ 17 ноября 2011

Я предполагаю, что это то, что должно быть запущено

Нет, ваше предположение неверно. В ASP.NET MVC вы никогда не обращаетесь к представлению напрямую. Вы всегда проходите через действие контроллера, которое выполняет некоторую обработку модели и возвращает представление.

Таким образом, когда вы запрашиваете /Account/Logon (при условии маршрутизации по умолчанию), необходимо выполнить действие Logon на AccountController:

public class AccountController: Controller
{
    public ActionResult Logon()
    {
        ...
    }
}

Если такого действия или контроллера не существует в проекте, вы получите 404.

Прежде чем продолжить работу с унаследованным проектом, я настоятельно рекомендую вам ознакомиться с основами ASP.NET MVC, выполнив некоторые из приведенных здесь руководств: http://asp.net/mvc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...