我有一个控制器方法 CreateOrUpdate,该方法应该将汽车保存到数据库,然后正常返回。
public ActionResult CreateOrUpdate(int ID = 0)
{
Car car = new Car(ID);
}
[HttpPost]
public ActionResult CreateOrUpdate(Car car)
{
car.Save();
return View(car);
}
在 theCar.Save() 方法中,我设置了汽车的 id,无论汽车保存后数据库中的 id 是什么(在进行插入时,我使用 SCOPE_IDENTITY(),保存方法效果很好,如果我在调用 Save() 后调试并观察 car 的值,id 是正确的。但是当渲染视图时,视图中的 ID 为 0。
谁能帮助我,并告诉我为什么会发生这种情况。我是否不应该更改 HTTP POST 方法中视图的模型?如果保存成功,我应该重定向到原始的 CreateOrUpdate() 方法吗?
应该是ModelState的问题。
如果您使用 Htmlhelper 来显示 id 值。
默认 HtmlHelper 显示 ModelState 值而不是 Model。
尝试在视图中显示模型值
<td>
@Model.id
</td>
或清理控制器中的 ModelState 值
ModelState.Clear();
或在 SaveChange 后重置 id 值。
theCar.Save();
ModelState["id"].Value = theCar.id
return View(theCar);
表单提交后重置textarea的值 https://stackoverflow.com/questions/787895/asp-net-mvc-reset-the-value-of-textarea-after-form-submition
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)