返回操作无法正常工作

时间:2011-03-07 16:49:22

标签: asp.net-mvc

我有一个简单的创建操作,可以将产品保存到数据库。保存产品后我使用了返回View(new Product());重置表单字段但表单显示旧数据(提交表单之前的数据)。我也使用return View(new Product(name =“test”));但它也不起作用。 问题是什么?产品正确保存到DB(这意味着ModelState.IsValid为true)。我不想使用RedirectToAction。

    [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);
    }

2 个答案:

答案 0 :(得分:2)

我认为建议的做法是使用RedirectToAction(),但如果你想按照自己的方式尝试,可以试试

 ModelState.Clear();
 return View(new Product());

答案 1 :(得分:0)

如果您打算修改已处于模型状态的属性,则需要将其删除,或者绑定到此值的HTML帮助程序将始终使用模型状态中的值而不是您修改的值:

ModelState.Remove("SubmitDate");
product.SubmitDate = DateTime.UtcNow;
return View(product);

如果要清除所有属性,最好重定向或清除整个模型状态集合:ModelState.Clear();