模式或与行动咨询和行动结果一起工作的方式

时间:2012-11-27 21:15:28

标签: asp.net-mvc

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

这很简单,但问题是这个。

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

目前我们做的是请求数据到咨询表格的行动,然后如果一切正常,我们重定向发送请求数据的行动结果与tempdata。

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

2 个答案:

答案 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);
}

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