2017-07-12 118 views
0

我有網絡API值不能爲空。實體

我嘗試從郵遞員

這裏發送的請求是我的模型

using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 

namespace trackingappbackend.Models 
{ 
    using System; 
    using System.Collections.Generic; 

    public partial class StartWorkingDay 
    { 
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
     [Key] 
     public int Id { get; set; } 
     public string Company { get; set; } 
     public string Date { get; set; } 
     public string Time { get; set; } 
     public string INN { get; set; } 
    } 
} 

這裏是控制器

// POST: api/StartWorkingDays 
    [ResponseType(typeof(StartWorkingDay))] 
    public IHttpActionResult PostStartWorkingDay(StartWorkingDay startWorkingDay) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 

     db.StartWorkingDays.Add(startWorkingDay); 
     db.SaveChanges(); 

     return CreatedAtRoute("DefaultApi", new { id = startWorkingDay.Id }, startWorkingDay); 
    } 

我傳遞數據,如在屏幕上

enter image description here

但我有這個錯誤

值不能爲空。參數名稱:實體

我該如何解決?

+0

@TimSchmelter我不認爲這是正確的dublicate。這似乎是一個反序列化問題。 – NtFreX

+0

@TimSchmelter我同意NtFreX –

+0

@TimSchmelter,請看看你的模型,然後看看你的數據庫哪個參數不應該作爲null傳遞,希望能爲你提供路徑。 –

回答

0

您正在請求正文中發送數據,並且您的Post方法不知道這一點。您可以更改Post方法以添加[FromBody]從身體提取數據。

[ResponseType(typeof(StartWorkingDay))] 
public IHttpActionResult PostStartWorkingDay([FromBody]StartWorkingDay startWorkingDay) 
{ 
    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 

    db.StartWorkingDays.Add(startWorkingDay); 
    db.SaveChanges(); 

    return CreatedAtRoute("DefaultApi", new { id = startWorkingDay.Id }, startWorkingDay); 
} 

另外,嘗試調試您的方法,以查看您的startWorkingDay參數是否使用發送的數據反序列化。

希望幫助。

奧馬爾