我有一个表单,其中包含用户输入的各种值,然后用户发送查询并处理搜索结果。
这很简单,但问题是这个。
在MVC中,如果表单有错误,要在服务器上进行验证,应该再次显示错误表单。但如果我将我的请求发送到数据搜索操作,我应该返回到咨询操作表单的重定向,这将丢失验证消息。
目前我们做的是请求数据到咨询表格的行动,然后如果一切正常,我们重定向发送请求数据的行动结果与tempdata。
这种情况有更好的方法吗?
答案 0 :(得分:1)
如果我理解正确,PRG模式应该适用于您的情况。在后期操作中,如果模型状态无效,则重定向回咨询表格,否则继续进行搜索操作。过滤器将在内部将错误保存在tempdata中。
MVC3 model validation best practice redirect after post / state change
答案 1 :(得分:0)
返回View(model)
验证错误或RedirectToAction()
,具体取决于ModelState:
ActionResult Consult(@params) {
if (ModelState.IsValid) {
//validation succeeded.
return RedirectToAction("SearchResults", {searchParams = @params});
}
return View(@params);
}
点是,您可以在重定向时传递参数。