Я перепробовал все возможные ссылки на эту тему в StackOverflow, все предложения, приведенные здесь, просмотрел видео Рика Андерсона, но без какого-либо положительного результата. Все еще получаю ужасное сообщение "Найдено несколько типов...". И мой проект — это просто установка, чтобы попробовать феномен Района. Возможно ли вообще использование Area с программой просмотра Razor? Или только с ASPX??
Вот что у меня есть: В Global.asax:
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}, New String() {"MyApplication.Controllers"})
В трех отдельных файлах AreaRegistration:
Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
context.MapRoute( _
"Shopping_default", _
"Shopping/{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional})
End Sub
и:
Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
context.MapRoute( _
"Blog_default", _
"Blog/{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional})
End Sub
и:
Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
context.MapRoute( _
"Admin_default", _
"Admin/{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional})
End Sub
У меня было три файла AreaRegistration БЕЗ дополнительной ссылки на ".controller = "Home" ", но все они дают одинаковые результаты. Я также попытался добавить в эти три объявления дополнительный параметр для пространства имен. Я попытался добавить это в Global.asax:
ControllerBuilder.Current.DefaultNamespaces.Add("MyApplication.Admin.Controllers")
ControllerBuilder.Current.DefaultNamespaces.Add("MyApplication.Blog.Controllers")
ControllerBuilder.Current.DefaultNamespaces.Add("MyApplication.Shopping.Controllers")
ControllerBuilder.Current.DefaultNamespaces.Add("MyApplication.Controllers")
но и это без положительного результата. Я также пробовал без имени приложения в классах AreaRegistration. Какие другие возможные действия я могу попробовать (и с успешными результатами)? Структура проекта проста: я начал с пустого проекта, сразу же добавил три области, HomeControllers и представления Index. Никаких изменений в пространствах имен, все оставлено по умолчанию, насколько это возможно. Использовался шаблон MVC 4. Любые предложения от кого-либо?
Питер