簡體   English   中英

同時使用[FromUri]和[FromBody]綁定復雜的Web Api方法參數

[英]Using [FromUri] and [FromBody] simultaneously to bind a complex Web Api method parameter

我正在使用請求和響應模型來封裝需要傳遞給ASP.NET Web Api中的方法的數據,必要時使用[FromUri][FromBody]

但是,有些實例我想使用Uri和Body來填充我的請求模型的屬性。 一個例子是更新用戶,其中UserId應該在Uri中傳遞,但要更新的數據將在正文內容中傳遞。 我想要的實現看起來像這樣:

型號

public class UpdateUserRequestModel
{
    public string UserId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string DisplayName { get; set; }
}

Api方法

[HttpPut]
[Route("Update/{UserId}")]
// PUT: api/Users/Update/user@domain.net
public async Task UpdateUserAsync(UpdateUserRequestModel model)
{
    // Method logic
}

我希望獲得屬性UserId [FromUri] ,但其余的要獲得[FromBody] ,同時將所有參數保存在單個對象中。 這可能嗎?

不是最干凈的解決方案,但它應該工作:

[HttpPut]
[Route("Update/{UserId}")]
// PUT: api/Users/Update/user@domain.net
public async Task UpdateUserAsync(UpdateUserRequestModel model, int UserId)
{
    model.UserId = UserId;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM