我已經嘗試過在StackOverflow中爲此主題提供的所有可能的鏈接,這裏給出的所有建議都是由Rick Anderson觀看視頻,但沒有任何積極結果。仍然得到恐懼「多種類型被發現......」消息。而我的項目只是一個設置來嘗試面積現象。 Razor viewer是否可以使用Area's?或僅與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類中沒有應用程序名稱。我可以嘗試哪些可能的其他行動(並取得成功的結果)? projectstrcuture很簡單:我從一個空的項目開始,立即添加了三個區域,HomeControllers和Index視圖。名稱空間沒有改變,所有這些都是儘可能默認的。使用MVC 4模板。 任何人的建議?
Peter
嗨danludwig,雖然我不確定,但我認爲你在這裏是正確的。我用稍微不同的方式解決了這個問題。我將在下面提供我的解決方案。 –