2013-04-15 38 views
2

我已經使用MVC 3的問題,我的應用程序註冊區域,但沒有功能上,當應用程序啓動讓我:的路徑控制器「/登錄/索引」未找到或沒有實現一個IController

{System.Web.HttpException (0x80004005): The controller for path '/Login/Index' was not 
found or does not implement IController. 
    at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) 
    at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) 
    at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<BeginProcessRequest>b__2() 
    at System.Web.Mvc.SecurityUtil.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() 
    at System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) 
    at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) 
    at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust[TResult](Func`1 func) 
    at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) 
    at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) 
    at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)} 
+0

我們可以看看你的代碼註冊的地方?應該在global.asax中 – SpykeBytes

回答

1

如果在您的區域的錯誤名稱空間中聲明瞭Controller類,則會發生此錯誤。確保名稱空間與區域註冊相匹配。

0

這意味着MVC無法找到實現IController的類,無論是通過默認的Controller類還是某種其他機制(在名稱空間{DefaultNamespace}.Controllers.Login中也命名爲Index)。一般來說,如果你像默認的MVC項目結構一樣構造你的MVC應用程序,那麼你將不會遇到這種類型的問題。

但是,如果您正在使用正確的文件夾結構,並且這是說,那麼您設置的Index控制器沒有正確繼承。

此答案當然假設您使用的是從模板首次創建項目時設置的基本默認路由。

0

這是一個古老的問題,但我真的找不到正確的答案在其他地方。這是我的解決方案:

我有多個項目的解決方案。所有項目都在MVC3中。我在我的機器上安裝了Visual Studio 2012,似乎有些項目自動升級到MVC4。

我得到這個問題「The controller for path '/etc/etc' was not found or does not implement IController」,因爲處理該路線的項目是指向MVC4的。我不得不手動更新他們的引用來使用MVC3。您也可以使用文本編輯器打開.csproj文件。找到參考MVC3並刪除這一行:

<SpecificVersion>False</SpecificVersion>

相關問題