我正在嘗試編寫一個API。該簽名是這樣的:MVC4 API路由首先採取行動
public class CardsController : ApiController
{
[HttpGet]
public ClientData NewGame(){...}
[HttpGet]
public ClientData Deal(int sessionId){...}
[HttpGet]
public ClientData Stand(int sessionId){...}
}
與默認我得到一個錯誤,說我的課不能處理區分和林分一切。經過一番研究,我發現這是一個路由問題。所以我決定更新我的路由。
我的global.asax.cs現在看起來是這樣的:
public class MvcApplication : HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapHttpRoute("api", "api/{controller}/{action}/{value}", new { value = RouteParameter.Optional});
}
}
要http://localhost:54924/api/Cards/Stand/19
給出說不HttpResource發現錯誤,並要http://localhost:54924/api/Cards/Stand
觸發NewGame()
行動。我怎樣才能讓Stand和Deal在同一個控制器上工作?
當我嘗試過你的方式時出現錯誤,但是這對我有效:http:// localhost:54924/api/Cards/Stand?sessionId = 19 –
@VaibhavDesai我可以看到你是如何設置的嗎?我得到了'找到多個匹配請求錯誤的操作'錯誤。 – Billdr