所以我的控制器中有一个简单的动作。该项目是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);
}
我想清除表单中的字段,并允许用户再次输入数据。但是我将完全相同的值返回到输入中。如何在控制器中清除它们。
答案 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
。