c# - 如何在不丢失请求数据的情况下在 ASP.NET MVC 中使用 RedirectToAction

标签 c# asp.net-mvc

使用 ASP.NET MVC 时,有些情况(例如表单提交)可能需要 RedirectToAction

一种情况是当您在提交表单后遇到验证错误并需要重定向回表单,但希望 URL 反射(reflect)表单的 URL,而不是它提交到的操作页面。

由于我要求表单包含最初的 POSTed 数据,为了方便用户以及验证目的,我如何通过 RedirectToAction()?如果我使用 viewData 参数,我的 POST 参数将更改为 GET 参数。

最佳答案

解决方案是使用 TempData 属性来存储所需的 Request 组件。

例如:

public ActionResult Send()
{
    TempData["form"] = Request.Form;
    return this.RedirectToAction(a => a.Form());
}

然后在您的“表单”操作中,您可以:

public ActionResult Form()
{
    /* Declare viewData etc. */

    if (TempData["form"] != null)
    {
        /* Cast TempData["form"] to 
        System.Collections.Specialized.NameValueCollection 
        and use it */
    }

    return View("Form", viewData);
}

关于c# - 如何在不丢失请求数据的情况下在 ASP.NET MVC 中使用 RedirectToAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936/

相关文章:

c# - 将 RTF 格式转换为 HTML 标签

c# - 使用工作流以编程方式处理所有 Sitecore 项目

asp.net-mvc - 使用RedirectToAction时如何在 View 中显示成功消息

c# - fluidvalidation 更改 int/long 的默认错误消息

c# - 使用 Entity Framework 时,我是否需要工作统一和存储库模式?

c# - Azure Functions 错误 - 无法将参数绑定(bind)到字符串类型

c# - 如何在没有回发或更新面板的情况下获取 DropdownList 的 SelectedValue

asp.net-mvc - 是否有官方的 ASP.NET MVC 引用/示例应用程序?

c# - 带有嵌套模型类的 Razor View

asp.net-mvc - ASP.NET MVC4 在错误区域搜索 Controller