-1
私はフォームを提出し、EFを使用してデータを保存しますが、提出時にすべてのフィールドが正しく記入されても、条件付きでinvalid
と入力されます。他のフィールドが記入されている場合は0
と表示されているId
の列と関係があると思います。c#mvcとEF - 無効なモデルが返されます
ページのデータモデル:
public class PagesVM
{
public PagesVM()
{
}
public PagesVM(PagesDTO pagesDTO)
{
Id = pagesDTO.Id;
Title = pagesDTO.Title;
Slug = pagesDTO.Slug;
Body = pagesDTO.Body;
}
public int Id { get; set; }
[Required]
[StringLength(50, MinimumLength = 3)]
public string Title { get; set; }
[Required]
[StringLength(50, MinimumLength = 3)]
public string Slug { get; set; }
[Required]
[StringLength(100, MinimumLength = 3)]
public string Body { get; set; }
}
POSTアクション:
[HttpPost]
[ActionName("add-page")]
public ActionResult AddPage(PagesVM pagesVM)
{
if (! ModelState.IsValid)
{
return View("AddPage", pagesVM);
}
using (Db db = new Db())
{
PagesDTO pagesDTO = new PagesDTO();
pagesDTO.Title = pagesVM.Title;
pagesDTO.Slug = pagesVM.Slug;
pagesDTO.Body = pagesVM.Body;
db.SaveChanges();
}
ViewBag.SM = "You have added a new page!";
return View("AddPage");
}
そうにかかわらず、フォームは、それが常にif (! ModelState.IsValid)
になり、正しく記入されている場合。 IDがまだ設定されていない場合
内部
でそれを配置する必要がありを通じて来ていない場合は
!あなたの見解では、あなたのIDのためのHTMLエディタを生成し、それを見えなくする必要があります...それは奇妙に聞こえますが、私を信じて、おそらく最も効率的な方法です。 –
でも、私は価値のために置くべきものは何ですか?それはdbのオートインクリメントになっています。 – frc
追加時にプライマリキーを指定するように自動調整されない場合は、待機します。 –