Asp.net mvc 返回操作无法正常工作
我有一个简单的创建操作,可以将产品保存到DB。保存产品后,我使用了return视图(new product());重置表单字段,但表单显示旧数据(提交表单前的数据)。我还使用返回视图(新产品(name=“test”);但它也不起作用。 有什么问题?产品已正确保存到DB(这意味着ModelState.IsValid为true)。我不想使用重定向操作Asp.net mvc 返回操作无法正常工作,asp.net-mvc,Asp.net Mvc,我有一个简单的创建操作,可以将产品保存到DB。保存产品后,我使用了return视图(new product());重置表单字段,但表单显示旧数据(提交表单前的数据)。我还使用返回视图(新产品(name=“test”);但它也不起作用。 有什么问题?产品已正确保存到DB(这意味着ModelState.IsValid为true)。我不想使用重定向操作 [HttpPost] public ActionResult New(Product product) { i
[HttpPost]
public ActionResult New(Product product)
{
if (ModelState.IsValid)
{
product.SubmitDate = DateTime.UtcNow;
productRepository.Add(product);
productRepository.Save();
//ViewBag.Message = "product is saved";
return View(new Product());
}
return View(product);
}
我认为推荐的做法是使用
RedirectToAction()
,但如果您想按自己的方式尝试,您可以尝试
ModelState.Clear();
return View(new Product());
如果要修改已处于模型状态的属性,则需要将其删除,或者绑定到此值的HTML帮助程序将始终使用模型状态中的值,而不是您修改的值:
ModelState.Remove("SubmitDate");
product.SubmitDate = DateTime.UtcNow;
return View(product);
如果要清除所有属性,最好重定向或清除整个模型状态集合:ModelState.clear()代码>