ASP.net MVC4清除模型值

时间:2012-08-20 23:42:59

标签: asp.net-mvc mobile

所以我的控制器中有一个简单的动作。该项目是MVC移动应用程序。

public ActionResult Index()
{
  return View();
}

这提供了一个输入数据的表单。然后我处理帖子中的数据。

[HttpPost]
public ActionResult Index(ScanViewModel model)
{
    if (ModelState.IsValid)
    {
        Scan ns = new Scan();
        ns.Location = model.Location;
        ns.Quantity = model.Quantity;
        ns.ScanCode = model.ScanCode;
        ns.Scanner = User.Identity.Name;
        ns.ScanTime = DateTime.Now;

        _db.Scans.Add(ns);
        _db.SaveChanges();

    }

    return View(model);
}

我想清除表单中的字段,并允许用户再次输入数据。但是我将完全相同的值返回到输入中。如何在控制器中清除它们。

2 个答案:

答案 0 :(得分:2)

只需致电this.ModelState.Clear()

答案 1 :(得分:1)

您应该遵循PRG模式。

只需重定向到适用于Create屏幕的Action方法即可。您可以使用RedirectToAction方法执行此操作。

RedirectToAction会向浏览器返回HTTP 302响应,这会导致浏览器对指定的操作发出 GET 请求。

[HttpPost]
public ActionResult Index(ScanViewModel model)
{
   if(ModelState.IsValid)
   {
       //Code for save here
       //..............
       _db.SaveChanges();
       return RedirectToAction("Index","User");
   }
   return View(model);
}
public ActionResult Index()
{
   return View();
}

假设您的控制器名称为UserController