我已经在 StackOverflow 中尝试了所有可能的链接到这个主题,这里给出的所有建议,查看了 Rick Anderson 的视频,但没有任何积极的结果。仍然收到可怕的“找到多种类型......”消息。而我的项目只是一个尝试区域现象的设置。是否可以在 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 模板。任何人的任何建议?
彼得