2011-05-10 51 views
1

我正在做一些項目的工作,我試圖讓我的開發環境工作。該項目是用ASP.net MVC 2編寫的。我安裝了ASP.net MVC 3。控制器已被移動到名稱空間爲ProjectName.Web.Controllers的獨立項目。所有控制器都從System.Web.MVC.Controller繼承。當我嘗試打了一個控制器,我得到以下幾點:控制器在單獨的程序集中並且沒有找到或未實現IController的「路徑控制器」/ controllerName /「。錯誤

[HttpException]: The controller for path '/controllerName'; was not found or does not implement IController. 

如果我讓在包含查看Web項目控制器文件夾,複製所有的控制人不存在,並重新編譯,它工作正常。

+0

使用該項目的其他人都使用他們在幾個月前安裝的原始MVC 2,並且他們都正常工作。我使用的是MVC 3,我已經將它安裝在兩臺機器上,並且它也沒有工作。 – jpmcclung 2011-05-11 15:25:12

回答

0

終於明白了今天重溫這個問題。該解決方案是在沒有最新版本的ASP.Net MVC的機器上創建的。它只有版本2,工作得很好。我的機器有版本3,並沒有工作。原來控制器項目引用了我的機器上的版本3程序集和原始機器上的版本2。參考看起來像以下:

<Reference Include="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>..\Web\bin\System.Web.Mvc.dll</HintPath> 
</Reference> 

由於網絡項目使用ASP.Net MVC的2.0版本,這就是爲什麼我得到了控制並沒有實現一個IController錯誤,它是在尋找一個IController版本2不是版本3.

0

您需要將新項目命名空間添加到收藏引入DefaultNamespaces對當前ControllerBuilder類

ControllerBuilder.Current.DefaultNamespaces.Add("ProjectName.Web.Controllers"); 
+0

我已將該行添加到Global.asax.cs的Application_Start方法中,並且仍然收到相同的錯誤。 – jpmcclung 2011-05-11 00:16:33

0

你說,你搬到一個單獨的項目中的所有控制器。你在ASP.NET MVC應用程序中引用了這個項目嗎?生成的程序集位於網站的bin文件夾中嗎?

+0

是的項目被引用,並且dll位於bin文件夾中。我會嘗試在問題中添加更多細節。謝謝 – jpmcclung 2011-05-11 15:21:39

相關問題