1

我有這個代碼這個Global.asax文件:不能在MVC找到控制器3項目 - NOTFOUND錯誤

routes.MapRoute("Invitations", 
         "api/invitations", 
         new { controller = "Invitations", action = "Invitation"}); 

而且我有一個控制器:

public class InvitationsController : Controller 
{ 
    [HttpPut] 
    public JsonResult Invitation(InvitationResponse invitationResponse) 
    { 
     //code 
    } 
} 

而且我通過HttpWebRequest使用此URL訪問控制器:

"http://localhost:6055/API/Invitations" 

當我運行這個時,我得到錯誤「NotFound」。

編輯:

整個全球航線:

routes.IgnoreRoute( 「{}資源個.axd/{*} PATHINFO」);

 routes.MapRoute("Users", 
         "api/users/{id}", 
         new { controller = "Users", action = "UserAction", id = UrlParameter.Optional }); 


     routes.MapRoute("CheckIn", 
         "api/checkins", 
         new { controller = "CheckIn", action = "CheckIn" }); 

     routes.MapRoute("Appointments", 
         "api/appointments/{id}", 
         new { controller = "Appointments", action = "Appointment", id = UrlParameter.Optional }); 

     routes.MapRoute("UserAppointments", 
         "api/users/{userId}/appointments/{startDate}", 
         new { controller = "Appointments", action = "UserAppointments", startDate = UrlParameter.Optional }); 

     routes.MapRoute("UserInvitations", 
         "api/users/{userId}/invitations", 
         new { controller = "Invitations", action = "UserInvitations" }); 

     routes.MapRoute("UserOverview", 
         "api/users/{id}/overview", 
         new { controller = "Users", action = "Overview" }); 

     routes.MapRoute("Invitations", 
         "api/invitations", 
         new { controller = "Invitations", action = "Invitation"}); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
+0

我不知道[本測試人員](http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx)是否適用於MVC3(適用於MVC2),但你可以試試它,它是測試你的路由配置的好工具。 –

+0

我測試了測試儀,發現它與當前請求相符 – user1156691

+0

然後,您的路由似乎配置正確,並且您的請求應該觸發控制器/操作。它的請求是否與路由層次結構中較高的其他路由不匹配? –

回答

0

的 「http://本地主機:6055/API /請柬」 看起來不正確的,應該不會是

的「http://本地主機:6055/YourApp/API /邀請「

+0

沒有即時通訊使用HttpPut在這種情況下。我不顯示的是我發送一個InvitationResponse對象 – user1156691

+0

啊沒關係,我弄錯了。你有什麼可能會衝突的路線嗎?你有測試這條路線嗎? – dove

+0

我編輯了這個問題,以便您可以查看所有路線 – user1156691