当我做一个create方法时,我在参数中绑定我的对象,然后检查是否ModelState有效,所以我添加到数据库:
但是当我在添加到数据库之前需要更改某些内容时(在我更改它之前它ModelState无效,所以我必须这样做)为什么模型状态仍然无效.
这个功能究竟检查了什么?
这是我的例子:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "EncaissementID,libelle,DateEncaissement,Montant,ProjetID,Description")] Encaissement encaissement) {
encaissement.Montant = Convert.ToDecimal(encaissement.Montant);
ViewBag.montant = encaissement.Montant;
if (ModelState.IsValid) {
db.Encaissements.Add(encaissement);
db.SaveChanges();
return RedirectToAction("Index", "Encaissement");
};
ViewBag.ProjetID = new SelectList(db.Projets, "ProjetId", "nomP");
return View(encaissement);
}
Run Code Online (Sandbox Code Playgroud) 当我向项目添加迁移时,我正在学习 asp.net mvc,它使用三种方法(种子、向上和向下)添加两个文件。
我不明白 up 和 down 方法有什么区别,你能帮我解释一下吗?
这些是我的上下方法:这是什么意思!
public override void Up()
{
AddColumn("dbo.Projets", "Description", c => c.String());
AddColumn("dbo.Projets", "UtilisateurID", c => c.Int(nullable: false));
AlterColumn("dbo.Projets", "etat", c => c.Int());
CreateIndex("dbo.Projets", "UtilisateurID");
AddForeignKey("dbo.Projets", "UtilisateurID", "dbo.Utilisateurs", "UtilisateurID", cascadeDelete: true);
}
public override void Down()
{
DropForeignKey("dbo.Projets", "UtilisateurID", "dbo.Utilisateurs");
DropIndex("dbo.Projets", new[] { "UtilisateurID" });
AlterColumn("dbo.Projets", "etat", c => c.String());
DropColumn("dbo.Projets", "UtilisateurID");
DropColumn("dbo.Projets", "Description");
}
Run Code Online (Sandbox Code Playgroud)
提前致谢