2016-09-24 68 views
1

我有這個技術問題,郵差與網頁API C#miltiple PARAMS

我已經創建了我的web API控制器中的條目,讓我來創建用戶:

public IHttpActionResult PostUser(User user) 

我可以用郵差消耗此休息服務是這樣的:

Post using Postman

現在我想創建一個類似的條目,但與2參數此時S,這樣的:

 public IHttpActionResult PutUser(int id, User user) 

我的問題是我不能達到此方法郵差

我已經嘗試:

  • 添加我的 「ID」 參數郵遞員石楠
  • 在郵遞員身體形態數據上添加我的「id」參數
  • 在郵遞員身上添加我的「id」參數-x-www-form-urlencoded
  • 在postman body-raw befor和json代碼之後加上我的「id」參數作爲分隔符['&',',']和asignation char [':','=']。

沒有一個工作,我跑出了想法。

沒有人知道如何正確調用此服務嗎?

最好的問候!

回答

2

你應該將屬性添加到您的方法,因爲這樣的:

public IHttpActionResult PutUser(int id, [FromBody] User user) 

這表明user參數請求主體接收。接下來,你可以使用以下網址:

http://localhost:15423/api/users?id=<your_id> 

而且有利於充分REST的使用,如果添加[FromUri]id參數和[Route("{id}")]的方法,你可以使用:

http://localhost:15423/api/users/5 

其中5可以被你的id替換。

(兩個請求應包括在體內的User對象)

+0

嗨Eavidan,感謝您的答案,這是擊潰配置:config.Routes.MapHttpRoute( 名稱: 「DefaultApi」, routeTemplate:「API/{controller}/{id}「, 默認值:new {id = RouteParameter.Optional} ); 添加[FromBody]不解決我的問題,該帖子繼續使用方法'putusers'沒有ID ... –

+0

沒有必要爲此,你添加了Route屬性的方法,路線應該可用。您應該閱讀Web API中的屬性路由。無論哪種方式,第一個建議應該起作用。 – eavidan

+0

嗨!你是對的,我讀了關於屬性映射,最後我能解決我的問題。問候! –