MVC 5内で作成しようとしていますが、ModelStateが有効になっていても検証エラーが発生しています。検証は、1つのまたは複数のエンティティのために失敗したMVC 5検証エラーを作成しますが、有効なModelState
エラーメッセージ
。詳細は、「EntityValidationErrors」プロパティを参照してください。
と私はメッセージを見たとき、それは私がPOSTを見てみると....
名「E」は現在のコンテキストで
存在しない示していデータの場合、作成されたモデルにはすべての必須フィールドが入力されています。モデルID
には0
が割り当てられていました。私はそれがエラーかどうか、またはIDにゼロを渡すことになっているかどうかはわかりません。
何が問題なのですか?
WosController.cs
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "id,woNumber,woDescription,dueDate,qty,item_id,releaseDate,parentWO_id,wip_id")] Wo wo)
{
if (ModelState.IsValid)
{
db.Wos.Add(wo);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(wo);
}
Wo.cs
public partial class Wo
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Wo()
{
this.WoParts = new HashSet<WoPart>();
this.WoStatuses = new HashSet<WoStatus>();
}
public int id { get; set; }
public string woNumber { get; set; }
public string woDescription { get; set; }
public Nullable<System.DateTime> dueDate { get; set; }
public string qty { get; set; }
public Nullable<int> item_id { get; set; }
public Nullable<System.DateTime> releaseDate { get; set; }
public string status { get; set; }
public Nullable<int> parentWO_id { get; set; }
public int wip_id { get; set; }
public Nullable<int> part_id { get; set; }
public virtual Item Item { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<WoPart> WoParts { get; set; }
public virtual Wo woParentWO { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<WoStatus> WoStatuses { get; set; }
public virtual Part Part { get; set; }
public virtual Wip Wip { get; set; }
}
*検証エラーが発生しました* ..何がエラーですか? –
あなたの '臥'クラスはどのように見えますか?そのエラーメッセージで – KSib
..どのように動作していますか? 'e'とは何ですか?それは実行時エラーではなくコンパイル時エラーでなければなりませんか?エラーのより良い説明を得るには、 'try-catch block'を試して例外をキャッチしてください。デバッグすると、何が起こったのかが正確に伝えられます。 –