1

所以我在我的控制器中有一个简单的动作。该项目是一个 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);
}

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

4

2 回答 2

1

您应该遵循PRG模式。

Create只需重定向到适用于Screen的 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.

于 2012-08-20T23:45:00.050 回答
1

打电话this.ModelState.Clear()

于 2012-08-21T00:32:15.583 回答