Я пытаюсь использовать класс Maarten Balliauw * Route Domain для сопоставления поддоменов с областями в приложении MVC2, чтобы у меня были URL-адреса, такие как:
http://admin.mydomain.com/home/index
вместо:
http://mydomain.com/admin/home/index
До сих пор у меня был только частичный успех.Выполнение направляется на правильный контроллер в правильной области, но затем он не может найти правильный вид.Я получаю следующую ошибку:
The view 'Index' or its master was not found. The following locations were searched:
~/Views/AdminHome/Index.aspx
~/Views/AdminHome/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
Это указывает на то, что MVC ищет представление только в корневой папке представлений, а не в папке представлений в области.Если я скопирую представление из папки представлений области в корневую папку представлений, страница отобразится нормально.Это, однако, полностью побеждает цель разделения APP на Области.
Я определяю маршрут для области как:
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get { return "Admin"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.Routes.Add(
"Admin_Default"
, new DomainRoute(
"admin.localhost"
, "{controller}/{action}/{id}"
, new { controller = "AdminHome", action = "Index", id = UrlParameter.Optional }
));
}
}
Я не понимаю, почему он находитКонтролер внутри Района нормально, но не вид.