1

我有一个用户输入各种值的表单,然后用户发送查询并处理搜索结果。

这很简单,但问题是这样的。

在 MVC 中,如果表单有错误,要在服务器上进行验证,应该再次显示错误的表单。但是如果我将请求发送到数据搜索操作,我应该返回一个重定向到咨询操作表单,这将丢失验证消息。

目前我们所做的是将数据请求到咨询表单的操作,然后如果一切正常,我们将操作结果重定向到使用 tempdata 发送请求数据。

这种情况有没有更好的方法?

4

2 回答 2

1

如果我理解正确,PRG 模式应该适用于您的情况。在后期操作中,如果模型状态无效,则重定向回咨询表,否则继续搜索操作。过滤器将内部保存临时数据中的错误。

发布/状态更改后的 MVC3 模型验证最佳实践重定向

于 2012-11-27T21:47:06.640 回答
0

返回View(model)验证错误或RedirectToAction()取决于 ModelState:

ActionResult Consult(@params) {
    if (ModelState.IsValid) {
        //validation succeeded.
        return RedirectToAction("SearchResults", {searchParams = @params});
    }

    return View(@params);
}

重点是,您可以在重定向时传递参数。

于 2012-11-27T21:27:20.080 回答