Я работаю над преобразованием веб-сайта с четырехуровневой структурой каталогов в MVC3 в Visual Studio 2010. В найденных примерах есть маршруты с {controller} / {action} / {id}.
Думая об уровнях структуры каталогов как о секциях, мне нужно обработать структуру, которая выглядит следующим образом: mysite.com/ enjsection1 broadcast/ndomsection2 broadcast/ndomsection3‹/ndomsection4 enj
Индексный файл будет в каждом разделе, действуя, как во введении в раздел и каталог.В настоящее время я не ожидаю каких-либо веб-страниц за пределами уровня раздела 4.
Я бы предпочел использовать карту сайта XML и написать некоторый блок кода для обработки различных структур каталогов страниц из этого.карта сайта.Я сделал это успешно с WebForms, но очень хочу сделать это с MVC3.Большой кусок, который я пропускаю, является хорошим рабочим примером этого.
Прямо сейчас я даже не могу получить это, чтобы направить в Раздел 2.Это в моем Global.asax.
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
);
routes.MapRoute("",
"Section1/{controller}/{action}/{id}",
new { controller = "Section1", action = "Index", id = UrlParameter.Optional }
);
}
Это в моем контроллере Section1.
public class Section1Controller : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Section2(string id)
{
return View("Section2/" + id);
}
}
Я могу успешно перейти к Section1 (то есть http://localhost:123/section1/). Но когда явведите Section2 (http://localhost:123/section1/section2), появляется эта ошибка:
Представление 'Section2 /' или его мастер не найдены или ни один механизм представления не поддерживает найденные местоположения. Были найдены следующие местоположения: ~ / Views /section1 / Section2 / .aspx ~ / Views / section1 / Section2 / .ascx ~ / Views / Shared / Section2 / .aspx ~ / Views / Shared / Section2 / .ascx ~ / Views / section1 / Section2 / .cshtml ~ / Views /section1 / Section2 / .vbhtml ~ / Views / Shared / Section2 / .cshtml ~ / Views / Shared / Section2 / .vbhtml
Я надеюсь, что все это имеет смысл. Если есть лучший способ приблизитьсяоб этом, пожалуйста, дайте мне знать.
Моя непосредственная проблема состоит в том, чтобы заставить это перейти к странице индекса для каждого из разделов (1, 2, 3 и 4), с контроллером на уровне раздела 1Если это невозможно, каков эффективный способ приблизиться к этому?d чтобы увидеть пример кода.
Во-вторых, есть ли достойный способ использования карты сайта на сайте MVC3?Если да, то какой подход я бы использовал?
Спасибо за вашу помощь.