Как проверить контроллеры MVC из приложения веб-сайта с asp mvc 3 после запуска AddMvc3ToWebForms? - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть традиционный asp.net проект веб-сайта , в который мне нужно интегрировать MVC. Я использовал утилиту Скотта Хансельмана (AddMvc3ToWebForms), как описано здесь некоторыми пользователями ...

Как бы вы добавили ASP.Net MVC в существующий проект веб-сайта?

После запуска утилиты в одном сообщении говорится: «Вы должны быть в состоянии нажать F5, перейти на« home »на своем веб-сайте и увидеть образец формы, представленной mvc».

Я не могу понять, если я просто не знаю, куда мне нужно направить свой браузер, чтобы протестировать простой контроллер в этом контексте, или действительно что-то не так.

Для проверки я добавил контроллер в private / app_code с именем HelloController.cs ...

public class HelloController : Controller
{
    public string Index()
    {
        return "Hello!";
    }
}

Если мой проект веб-сайта находится на http://localhost/privatedn, то я подумал, как это будет работать, чтобы перейти к http://localhost/privatedn/Hello и увидеть страницу с надписью "Hello!"

Тем не менее, я просто получаю ошибку 404 not found. Это кажется правильным? Проект, для которого я установил mvc 3, является приватным проектом, и все, что я прочитал, говорит о том, что модели и контроллеры должны находиться в папке app_code для проектов веб-сайтов.

Похоже, маршрутизация должна быть настроена. Вот что у меня сейчас есть в моем global.asax (он был в app_start / RegisterMvc3Routes, который был создан утилитой) ...

protected void Application_Start(Object sender, EventArgs e)
{
    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

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

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

}

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
}

Обновление Сейчас я пытаюсь с новым проектом веб-сайта просто посмотреть, смогу ли я даже заставить MVC и веб-сайт работать вместе, но все же не повезло. Я также попытался переместить RegisterMvc3Routes в код приложения.

...