我的传球价值存在问题。我是MVC的初学者,我读到了ViewBag
,TempData
,我知道它不应该工作,但我不知道如何使其工作。我的问题:
获得2个模型:Animal
和Visit
@Html.ActionLink("Add Visit", "Create", "Visit", new { id = item.AnimalID }, null)
它转到创建GET方法并传递了id,我得到一个视图来创建访问我可以提交它,一切都很好但是..
例如,如果我没有设置访问时间,则模型将不会更新,并且方法何时返回Create
Visit
查看我没有AnimalID
已经...可以告诉我如何在发布失败时保留这个值吗?
public ActionResult Create(int id) { 动物动物= db.Animals.Find(id); if(animal == null) { return HttpNotFound(); }
TempData["AnimalID"] = id;
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "VisitID,AnimalID,DoctorID,VisitDate,VisitHour,Price,Recognition,Medicines,VisitDescription")] Visit visit)
{
if (ModelState.IsValid)
{
visit.DoctorID = (int)Session["Doctors"];
db.Visits.Add(visit);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(visit);
}
答案 0 :(得分:0)
ViewBag和TempData仅保留一个请求的信息。如果modelstate无效,则必须重新设置ViewBag和TempData值。