2014-03-14 63 views
1

我正在使用Web API,並且正在嘗試調用用於更新用戶的PUT方法。我改變了我的路由以允許調用特定的方法,就像這樣; (這適用於其他方法)。Web Api路徑問題

 RouteTable.Routes.MapRoute(
      "WithActionApi", 
      "api/{controller}/{action}/{id}" 
     ); 

     RouteTable.Routes.MapRoute(
      "DefaultApi", 
      "api/{controller}/{id}", 
      new { action = "DefaultAction", id = System.Web.Http.RouteParameter.Optional } 
     ); 

但是當我嘗試將用戶放到下面的url中時,我收到了404錯誤;

// The url is: http://mysite/ 
     HttpResponseMessage response = await client.PutAsJsonAsync("api/Account/UserInfo/" + user.UserId, user); 

該URL如下所示。我也嘗試過「api/Account /」。

http://mysite/api/account/userinfo/{guid} 

該方法在我的控制器中看起來像這樣。方法簽名已經從另一個控制器的默認控制器類中腳手架 - 我只添加了屬性並將其移至帳戶控制器。

[RoutePrefix("api/Account")] 
    ... 
    [HttpPut] 
    [Route("UserInfo/{id}")] 
    public IHttpActionResult PutUserInfo(Guid id, User userdetails) 
    { } 

我也有任何人都可以看到我在這裏做的不對嗎?我非常堅持這一點。

感謝,

回答

0

我設法得到它的工作,加入我的上述putuserinfo以下路由屬性(GUID,用戶)方法代替。

[Route("{userid:Guid}")]