Я перевожу приложение веб-форм ASP.NET на ASP.NET MVC 3. Я вроде понимаю маршрутизацию, но вроде нет. В моем приложении я создал три файла .cshtml в каталоге, который находится по адресу / internal / products / find /. Для наглядности эти файлы .cshtml называются «view1.cshtml», «view2.cshtml» и «view3.cshtml».
У меня есть контроллер с именем «InternalController». Моя цель - использовать InternalController для всех мест внутри / внутреннего пути. Я не уверен, разрешено ли то, что я пытаюсь сделать. Я предполагаю, что это так. В любом случае, в данный момент у меня есть следующее в InternalController:
public ActionResult View1()
{
return View();
}
public ActionResult View2()
{
return View();
}
public ActionResult View3()
{
return View();
}
В моем файле global.asax.cs я пытаюсь зарегистрировать маршруты к этим представлениям следующим образом:
routes.MapRoute(
"View1",
"{controller}/products/find/view1",
new { controller = "Internal", action = "View1" }
);
routes.MapRoute(
"View2",
"{controller}/products/find/view2",
new { controller = "Internal", action = "View2" }
);
routes.MapRoute(
"View3",
"{controller}/products/find/view3",
new { controller = "Internal", action = "View3" }
);
Всякий раз, когда я пытаюсь посетить / internal / products / find / view1 в своем браузере, я вижу экран ошибки ASP.NET, и он говорит:
Представление 'View1' или его мастер не найдены, или никакой движок представления не поддерживает искомые местоположения. Были найдены следующие места:
~ / Views / внутренний / View1.aspx
~ / Views / внутренний / View1.ascx
~ / Views / Shared / View1.aspx
~ / Views / Shared / View1.ascx
~ / Views / приборная панель / View1.cshtml
~ / Views / приборная панель / View1.vbhtml
~ / Views / Shared / View1.cshtml
~ / Views / Shared / View1.vbhtml
Что я делаю не так? Путь / внутренний / products / find / view1 - самая важная часть для меня. В идеале я хотел бы выставлять это во InternalController каждый раз. Но у меня есть грубая попытка. Что я делаю не так?
Спасибо!