У меня есть проект, который использует области MVC. В области есть весь проект, в то время как основные папки «Представления/Контроллеры/Модели» за пределами Областей пусты, запрет диспетчера диспетчеризации, который у меня настроен, который направляет входящие запросы по умолчанию на главный контроллер в моей области.MVC Areas - View not found
Этот контроллер имеет один метод следующим образом: -
public ActionResult Index(string id)
{
return RedirectToAction("Index", "Home", new {area = "xyz"});
}
У меня также есть настройка маршрута по умолчанию, чтобы использовать этот контроллер следующим образом: -
routes.MapRoute(
"Default", // Default route
"{controller}/{action}/{id}",
new { controller = "Dispatch", action = "Index", id = UrlParameter.Optional }
);
Любые запросы по умолчанию на моем сайте, надлежащим образом направляется в соответствующую зону. Метод «RegisterArea» Район имеет один маршрут: -
context.MapRoute(
"xyz_default",
"xyz/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
Моя область имеет несколько контроллеров с большим количеством просмотров. Любой вызов определенного вида в этих методах контроллера, таких как «return View» («blah»), , отображает правильный вид. Однако всякий раз, когда я пытаюсь возвратить представление вместе с объектом модели, переданным в качестве параметра, я получаю следующую ошибку : -.
Server Error in '/DeveloperPortal' Application.
The view 'blah' or its master was not found. The following locations were searched:
~/Views/Profile/blah.aspx
~/Views/Profile/blah.ascx
~/Views/Shared/blah.aspx
~/Views/Shared/blah.ascx
похоже, каждый раз, когда модель объект передаются в качестве паров в «View()» метода [например, вернуть View («л», объект)] он ищет зрения в корень проекта, а не в конкретной папке просмотра.
Что мне здесь не хватает?
Заранее спасибо.
Это делается по умолчанию в веб-приложении ASP.NET MVC 2 в VS2008. Это часть настройки по умолчанию для global.asax – user314827
См. Мое редактирование .... –
Hi Robert, Я проверил все пространства имен контроллеров. Все они совпадают с тем, что должно быть, это ProjectName.Areas.AreaName.Controllers. – user314827