簡體   English   中英

來自郵遞員的POST請求未能通過模型​​驗證

[英]POST request from Postman fails model validation

在我的ASP.NET WebApi程序中,我有一個Author模型:

public class Author
{
    public int Id { get; set; }
    [Required] public string Name { get; set; }
}

我還有一個AuthorsController ,具有PostAuthor(Author author)方法:

// POST: api/Authors
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor(Author author)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    // etc.
}

當我在單元測試中以編程方式發送POST請求時,返回HTTP Status Code 201 Created

在此處輸入圖片說明

但是,當我使用Postman發送POST請求時,我收到的是HTTP Status Code 400 Bad Request

在此處輸入圖片說明

如您所見,當我使用Postman發送POST請求時,傳遞給PostAuthor(Author author)方法的參數為null ,因此模型驗證失敗:

在此處輸入圖片說明

我應該怎么做才能確保可以處理來自Postman POST請求?

FromBody更改:將其定義為HttpPost並使用FromBody這樣

// POST: api/Authors
[HttpPost]
[ResponseType(typeof(Author))]
public async Task<IHttpActionResult> PostAuthor([FromBody] Author author)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    // etc.
}

在郵遞員正文中用=替換=,畢竟是JSON。

如果您以application / json的形式發送並且您的API以INBOUND JSON的形式等待,那么嘗試以JSON格式發送,例如

{
"Id":"6",
"Name":"P.G. Wodehouse"
}

暫無
暫無

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

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