2

兩個不同的領域取得成果,我有兩個方面:不同的控制器具有相同的名稱,在路由衝突

ControlPanelPatients

兩者都有一個名爲ProblemsController這是唯一的名字類似的控制器。所期望的結果將是,產生/ ControlPanel控制/問題=> MyApp.Areas.ControlPanel.Controllers.ProblemsController和/患者/問題=> MyApp.Areas.Patients.Controllers.ProblemsController路由。

每個人都有路由配置是這樣的:

public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "**Area Name Here**_default", 
       "**Area Name Here**/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 
     } 

其中*****區域名稱這裏*****或者是ControlPanel控制或患者。

當我去/病人/問題/創建(例如),我得到一個404,在路由錯誤說:A public action method 'create' was not found on controller 'MyApp.Areas.ControlPanel.Controllers.ProblemsController'

我不知道我在做什麼錯。

回答

1

其實,原來的問題是與Autofac 2.1的AutofacControllerFactory。這些路線工作正常,但autofac很難找到正確的控制器。

對於那些使用Autofac和MVC 2.0,Autofac 2.1不具備的地區的支持。如果你的項目是很簡單的,Autofac可能出現與地區工作,但它會開始打破作爲你的領域和控制器變得更加複雜。

完整區域支持的門票已關閉,相關代碼也已簽入,但從我所知道的情況來看,直到2.2版本纔會發佈。我會試着從後備箱裏修建,然後我會報告它是怎麼回事。

UPDATE 是的,一切看起來不錯,使用自行車從樹幹建成。希望2.2將很快正式發佈。

相關問題