6

我們正在使用ASP.NET MVC Futures項目(Microsoft.Web.Mvc)來使MVC 3應用程序能夠使用RESTful路由。此應用程序已在MVC 1及其相關System.Web.Mvc.Resources.dll程序集中用於相同功能下完美工作。ASP.NET MVC 3 RESTful Routing:RouteData必須包含一個名爲Action的項目?

我們正在註冊的路線這樣:

routes.MapResourceRoute("MyController", "{MyItemId}"); 

這應該給我們喜歡路線:

/MyController 
/MyController/{MyItemId} 
/MyController/{MyItemId}/EditForm 
/MyController/CreateForm 

我們得到的四條航線是有效的三個 - 在此列第二(/ MyController/{MyItemId})返回錯誤:

Server Error in '/' Application. 
The RouteData must contain an item named 'action' with a non-empty string value. 

當我嘗試追加?action = Details或其他呃向URL注入動作參數的方法,我得到404錯誤。它看起來像期貨代碼中的WebEnabledApi屬性發生了顯着變化 - 任何其他人有這些問題,並有解決方案?

回答

1

默認路由基於「controller/action/id」,因爲你只是傳遞了id而不是action,它會給你404錯誤。

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

我相信你正試圖調用細節操作。

如果你有控制器上的作用,使用默認路由可能的工作:

MyController/Details/{MyItemId} 
相關問題