2016-03-15 19 views
3

我正在使用帶有標識2.0的web api。 我想爲用戶分配多個角色。 我正在使用post man客戶端與web api進行通信。 在API我用於獲取所述用戶的用戶ID和角色的方法在下面給出:從郵遞員客戶端發送字符串數組

public async Task<IHttpActionResult> AddRoleToUser(string userid,[FromUri] string[] selectedRoles) 

這裏selectedRoles是一個數組。 從郵遞員客戶端我傳遞數組如下: enter image description here

我在URL中傳遞用戶ID。 我是否以正確的格式從postman客戶端傳遞角色數組? 對api的調用是成功的,但selectedRoles總是包含空值。 我生JSON嘗試下面給出,但它並沒有奏效

enter image description here

如果我可以通過角色爲原料JSON,可以任意顯示一個例子

回答

2

第一個問題:你指定selectedRoles數組來自使用此屬性的URI(URL):[FromUri]。您需要移除此屬性,因爲您是在請求正文中發送它,而不是在URL中。

Web API操作只能接收來自請求正文的單個參數以及來自URL的任意數量的參數。因此,您需要將參數userid作爲查詢字符串參數傳遞,如此?userid=123123以及正文中的其他參數。 (你也可以創建包含userid路線,或接收userid作爲id參數,並把它作爲一個URL段,如果你使用的deafult路線)

你還需要在你的頭指定您在身體中發送的信息格式。所以你需要包含這個頭文件:Content-Type: application/json,因爲你的請求體中包含了JSON。

最後,當你從身體發出一個參數,你可以像這樣把它:

['Admin', 'Employee'] 

如果你想使用的格式在你的榜樣,您shuould創建一個類來使用在你的動作參數,那應該是這樣的:

public class RoleList 
{ 
    public string[] selectedRoles { get; set; } 
} 

和你的行動應包括爲參:

public async Task<IHttpActionResult> 
    AddRoleToUser(string userid, RoleList roleList) 
2

在C#方法的代碼:

public void Put([FromBody]string[] selectedRoles) 
    { 
     foreach (var role in selectedRoles) 
     { 

     } 
    } 

在標題標籤添加參數和內容類型參數與值調用方法在郵遞員

應用程序/ x-WWW窗體-urlencoded

在身體選項卡中選擇原料JSON(應用/ JSON)在盒體一個 然後dd你的陣列如下: ['Admin','Employee']

相關問題