2017-07-12 7 views
0

は、私がここで郵便配達値はnullにはできません。エンティティ

からリクエストを送信しようとしたWeb 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

は、しかし、私は

値はnullにすることはできません。このエラーが発生しています。パラメータ名:エンティティ

どうすれば修正できますか?

+0

@TimSchmelter私はこれが正しい集団ではないと思います。これはデシリアライゼーションの問題のようです。 – 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パラメータが送信されたデータを使用して逆シリアル化されているかどうかを確認するメソッドをデバッグしてみてください。

希望があれば。

オマール

関連する問題