2010-10-24 39 views
3

我剛開始使用dotnetopenauth進行用戶註冊。這很棒,而且工作完美。發現多個類型與名爲'Home'的控制器匹配

的問題是,現在我得到一個錯誤,當我嘗試去到/ home /它說:

多種類型的發現命名爲「家」的控制器匹配。如果爲該請求提供服務的路由('{controller}/{action}/{id}')沒有指定命名空間來搜索與該請求匹配的控制器,就會發生這種情況。如果是這種情況,請通過調用帶有'namespaces'參數的'MapRoute'方法的重載來註冊此路由。

爲 '家' 的請求已經發現了以下匹配控制器: OpenIdRelyingPartyMvc.Controllers.HomeController
YourApp.Controllers.HomeController

的問題是,我有不知道其中OpenIdRelyingPartyMvc.Controllers家庭控制器來自。我找不到「OpenIdRelyingPartyMvc」在我的應用程序的任何地方的任何實例,保存2個地方,這兩個發生在UsersController:

OpenIdRelyingParty openid = new OpenIdRelyingParty(); 

我試着刪除DLL並重新構建應用程序 - 沒有變化。我無法弄清楚這個其他控制器會在哪裏。

任何想法?

回答

3

我的猜測是,你複製從樣本代碼到你的代碼,或者您是從DotNetOpenAuth 樣品項目引用的DLL。請注意,OpenIdRelyingPartyMvc是MVC示例的命名空間。

所以我的建議是首先從項目引用開始刪除DotNetOpenAuth庫的所有實例。

+0

尼斯漁獲物你給了。謝謝。 – andrewheins 2010-10-25 12:12:52

5

更改項目的名稱和默認名稱空間後,我有相同的錯誤消息。

最後,解決方法是手動刪除調試文件夾中的所有文件(「Clean Solution」 - VS的功能在這種情況下沒有幫助)。在route.config文件

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    new[] { "ProjectName.Controllers" } 
); 

+0

這就是我需要解決我的問題。謝謝 – snumpy 2012-03-09 14:17:20

0

使用這樣的:項目名稱在創建項目

相關問題