ASP.NET MVC 4 Web 应用程序、SQL Server 2012、实体框架 5。
我有一个基于脚手架的视图-在数据库中成功创建记录而不是调用之后
return RedirectToAction("Index");
我希望用户能够立即添加另一条记录。但是,如果我改为返回一个空模型 - 例如这样:
return View(new Tag());
文本框仍然有旧的模型数据。它们不应该被清除吗?
我想要做的是清除所有文本框,以便用户可以输入下一项。
ASP.NET MVC 4 Web 应用程序、SQL Server 2012、实体框架 5。
我有一个基于脚手架的视图-在数据库中成功创建记录而不是调用之后
return RedirectToAction("Index");
我希望用户能够立即添加另一条记录。但是,如果我改为返回一个空模型 - 例如这样:
return View(new Tag());
文本框仍然有旧的模型数据。它们不应该被清除吗?
我想要做的是清除所有文本框,以便用户可以输入下一项。
你的问题在ModelState
. 它包含已发布的值并在客户端上填充它们。ModelState.Clear()
如果我记得这一点,你可以清除它。但这不是很好的解决方案。好的解决方案重定向到正确的操作而不是返回View(new Tag())
我在这里找到了答案: ASP.net MVC4 Clear Model Values
您需要在 Create Action 方法上调用 Http Get Action - 像这样:
return RedirectToAction("Create", "ControllerName");
这似乎使用 PRG 模式重置模型。仍然不完全确定为什么它第一次不起作用,但这作为一种更好的方法是有意义的。