2016-09-28 43 views
6

我從小提琴手發送POST:Asp.net芯柱參數始終是空

POST http://localhost:55924/api/Product HTTP/1.1 
User-Agent: Fiddler 
Host: localhost:55924 
Content-Type: application/json; charset=utf-8 
Content-Length: 84 

{"Ean″:」1122u88991″,」Name″:」Post test″,"Description":"Post test desc"} 

但Post方法總是很空。

// POST api/Product 
[HttpPost] 
public IActionResult PostProduct([FromBody]Product product) 
{ 
    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 

    _repo.Add(product); 

    return CreatedAtRoute("GetToode",product); 
} 

當我使用[FormBody]產品總是空的,當不使用它時,產品被賦值,但所有字段爲空。產品類別很簡單。

public class Product 
{ 
    public int ProductID { get; set; } 
    public string EAN { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public int? CategoryID { get; set; } 
} 

我嘗試添加NullValueHandling到ConfigureServices爲post,但沒有使用建議。

services.AddMvc() 
    .AddJsonOptions(jsonOptions => 
    { 
     jsonOptions.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; 
    }); 
+1

嘗試發送所有屬性。包含'ProductID'和'CategoryID'。 –

+0

這就像你映射字段不匹配,名稱應該與產品類相同,也嘗試刪除'[FromBody]' – Bharat

回答

3

我只是要糾正你的POST請求中的雙引號,它的工作。試試這個:

{"Ean":"1122u88991","Name":"Post test","Description":"Post test desc"} 

請看下面的截圖。

Screenshot

+0

老實說,我現在覺得這麼愚蠢,我沒有注意到它自己。 – martinv