首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在ASP.NET MVC中RedirectToAction而不丢失请求数据

在ASP.NET MVC中,如果要将请求重定向到另一个动作而不丢失请求数据,可以使用TempDataSession来保存临时数据。

  1. 使用TempData

TempData是一个临时数据存储,它在多个请求之间存储数据,但只保留一次。在ASP.NET MVC中,可以使用TempData来保存请求数据,然后在重定向之后将其恢复。

在源动作中,将请求数据保存到TempData中:

代码语言:csharp
复制
public ActionResult SourceAction()
{
    // 保存请求数据到TempData
    TempData["requestData"] = "some data";

    // 重定向到目标动作
    return RedirectToAction("TargetAction");
}

在目标动作中,从TempData中恢复请求数据:

代码语言:csharp
复制
public ActionResult TargetAction()
{
    // 从TempData中恢复请求数据
    string requestData = TempData["requestData"] as string;

    // 处理请求数据
    // ...

    return View();
}
  1. 使用Session

Session是一个会话数据存储,它在多个请求之间存储数据,直到会话结束。在ASP.NET MVC中,可以使用Session来保存请求数据,然后在重定向之后将其恢复。

在源动作中,将请求数据保存到Session中:

代码语言:csharp
复制
public ActionResult SourceAction()
{
    // 保存请求数据到Session
    Session["requestData"] = "some data";

    // 重定向到目标动作
    return RedirectToAction("TargetAction");
}

在目标动作中,从Session中恢复请求数据:

代码语言:csharp
复制
public ActionResult TargetAction()
{
    // 从Session中恢复请求数据
    string requestData = Session["requestData"] as string;

    // 处理请求数据
    // ...

    return View();
}

总之,在ASP.NET MVC中,如果要将请求重定向到另一个动作而不丢失请求数据,可以使用TempDataSession来保存临时数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

七天学会ASP.NET MVC (四)——用户授权认证问题

小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天的学习,我们主要了学习如何在MVC如何实现认证授权等问题,本节主要讲了验证错误时的错误值,客户端验证...系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...当点击”Add New“超链接时,请求会通过Add New方法处理,在该Action 方法,可以传递任何数据。即就是,View的Model属性为空。...在本系列的第一讲,我们了解了Asp.NetMVC的意义,知道MVCAsp.net的一部分,MVC继承了ASP.NET的所有特征,包含表单认证。 先来了解ASP.NET是如何进行Form认证的。

8.7K50

Asp.net mvc 知多少(四)

什么是 ASP.NET MVC的布局页(Layouts)? Ans. Layouts(布局页)是用来使asp.net mvc的views保持一致的外观体验。...Return RedirectToAction() - 这是告诉MVC去跳转到指定的action不是直接提供HTML。这种方式下,浏览器将受到跳转通知并重新发送一个指定action的新请求。...Return Redirect() - - 这是告诉MVC去跳转到指定的URL不是直接提供HTML。这种情况下,浏览器收到重定向的通知并重新发送一个指定URL的新请求。...备注: Return View 不会发起一个新的请求。它只是进行视图渲染不会更改浏览器地址栏的URL。...Return RedirectToAction 发起了一个新的请求,而且浏览器地址栏的URL将被MVC生成的URL更新。

2.2K90

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...库记录并更新表格 实验13——添加服务器端验证 实验14——自定义服务器端验证 结论 数据访问层 在实际开发,如果一个项目包含任何数据库,那么这个项目是不完整的,我们在一二节实例未涉及数据库,在本节开始...不相同,名称属性是HTML内部使用的,当请求被发送时,然而 ID属性是在JavaScript开发人员为了实现一些动态功能调用的。...提交按钮在给服务器发送请求专门使用的,简单的按钮是执行一些自定义的客户端行为而使用的。按钮不会自己做任何事情。 实验10——在服务器端(或Controller)获取Post数据 1.

5.2K100

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...当然,你也可以不以Controller作为控制器类名(ClassName)的固定后缀,那么路由模块会以完整的类名(ClassName)作为ControllerName 在 ASP.NET MVC框架...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。...Request.Query[“name”]:从Url参数获取数据 Request.Form[“name”]:从表单参数获取数据 六、备注 1、附录 本文代码示例 https://github.com

1.9K10

ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...当然,你也可以不以Controller作为控制器类名(ClassName)的固定后缀,那么路由模块会以完整的类名(ClassName)作为ControllerName 在 ASP.NET MVC框架,...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。...Request.Query[“name”]:从Url参数获取数据 Request.Form[“name”]:从表单参数获取数据 六、备注 1、附录 本文代码示例 https://github.com

2.2K40

ASP.NET Core 基础知识】--MVC框架--Models和数据绑定

ASP.NET Core MVC数据绑定允许开发人员以一种简单灵活的方式将HTTP请求数据映射到应用程序的模型对象,同时也可以将模型对象数据传递给用户界面。...数据绑定是ASP.NET Core MVC重要的机制之一,它简化了处理用户输入和管理模型数据的过程,同时提供了灵活性和可扩展性,使开发人员能够更容易地构建出强大高效的Web应用程序。...ASP.NET Core MVC框架将负责在运行时将请求数据映射到指定的参数或模型对象,使得开发人员可以方便地处理用户的输入。...return View(); } 在这个例子,Person 对象包含了 Address 对象作为其属性,ASP.NET Core MVC框架会递归地执行数据绑定,将请求数据映射到 Person 对象...return View(); } 在这个例子,Items 属性是一个字符串列表,ASP.NET Core MVC框架将尝试将请求数据映射到该列表。 3.

32110

.NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRFCSRF)攻击处理

ASP.NET Core 包含管理身份验证、授权、数据保护、SSL 强制、应用机密、请求防伪保护及 CORS 管理等等安全方面的处理。...而我们这一章就来说道说道如何在ASP.NET Core处理“跨站请求伪造(XSRF/CSRF)攻击”的,希望对大家有所帮助 写在前面 上篇文章发出来后很多人就去GitHub上下载了源码,然后就来问我说为什么登录功能都没有啊...既然跨站请求伪造(XSRF/CSRF)有这么大的危害,那么我们如何在ASP.NET Core中进行处理呢?...在ASP.NET Core MVC 2.0或更高版本,FormTagHelper为HTML表单元素注入防伪造令牌。...所有在ASP.NET Core MVC 和 Razor 页模板的表单都会生成 antiforgery 令牌。

3.9K20

ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇

那么在本篇文章,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Identity 进行身份验证(Authentication)以及联合ASP.NET MVC 基于角色的授权...进行注册,当请求经过ASP.NET Pipeline时,由ASP.NET Runtime 触发它,在该事件,它会验证并解析该Cookie为对应的用户对象,它是一个实现了 IPrincipal接口的对象...MVC 、Web Form 的表单身份验证实际由FormsAuthenticationModule 处理,Katana重写了表单身份验证,所以有必要比较一下传统ASP.NET MVC & Web Form...3.使用Authorize特性进行授权 ASP.NET Identity已经集成到了ASP.NET Framework,在ASP.NET MVC ,我们可以使用Authorize 特性进行授权,如下代码所示...小结 在这篇文章,探索了使用ASP.NET Identity 进行身份验证以及联合ASP.NET MVC 基于角色的授权。最后实现了对角色的管理。

3.4K60

ASP.NET MVC 随想录——开始使用ASP.NET Identity,初级篇

ASP.NET 框架上,例如 ASP.NET MVC, Web Forms,Web Pages,ASP.NET Web API 和SignalR ASP.NET Identity 可以用在各种应用程序...• 角色Provider ASP.NET Identity 的角色Provider配合ASP.NET MVC Authorize,可以让你基于角色来限制对应用程序某个部分的访问。...•    NuGet 包 ASP.NET Identity 作为一个 NuGet 包进行发布,并且安装在ASP.NET MVC,Web Forms 和 ASP.NET Web API 项目模板。...对于初学者,我建议学习它里面API的使用,但我推荐将它使用在正式环境,因为它产生了过多的通用和冗余代码,有时候我们只想让它简单工作。...角色管理,ASP.NET Identity提供了API用来管理用户和身份验证 ASP.NET Identity 可以运用到多种场景,通过对用户、角色的管理,可以联合ASP.NET MVC Authorize

3.5K80

ASP.NET Core中使用MediatR实现命令和中介者模式

在本文中,我将解释命令模式,以及如何利用基于命令模式的第三方库来实现它们,以及如何在ASP.NET Core中使用它来解决我们的问题并使代码简洁。因此,我们将通过下面的主题来进行相关的讲解。...命令模式的简单实例以及中介者模式的简单描述 MVC的瘦控制器是什么?我们是如何实现使控制器变瘦的?...我们如何在我们的.NET Core应用程序中使用MediatR 使用命令和事件的实例 命令模式及其简单实例 从根本上讲,命令模式是一种数据驱动的设计模式,属于行为模式的范畴。...在ASP.NET Core安装 我们需要从NuGet安装MediatR和MediatR.Extensions.Microsoft.DependencyInjection包。 ? ?...这里,我们使用了Publish 方法,不是Send 函数。发布将调用订阅了NewUser 类的所有处理程序。

1.1K00

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——...ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...实验29——异常处理—显示自定义错误页面 关于实验29 理解实验29的限制 实验30—异常处理—日志异常 关于实验30 理解RouteTable 理解Asp.net MVC 请求周期 实验31—实现用户友好...理解ASP.NET MVC 请求周期 在本节我们只讲解请求周期中重要的知识点 1. ...Query 字符串可使URL 混乱,Route参数可保持它有条理。 如何在Route 参数中使用限制? 可使用正则表达式。

3.9K100

.Net MVC 框架基础知识「建议收藏」

如果在相应的视图目录没有找到视图文件,那么会寻找Views\Shared目录下名称相同的视图文件 在ASPX视图引擎,可以使用asp服务器控件,但它的作用仅仅局限与生成html代码,推荐开发人员使用...四-(1)、Controller的Action Action用于响应用户的各种请求,比如向客户端返回html文档、html片段、json数据、纯文本、文件等结果。...在ASP.NET MVC通过在Action(行为或操作)方法返回ActionResult类型的对象来实现向客户端响应上面的各种结果。...在Controller类的辅助方法为:Controller.Json(object data); 注意:默认情况下mvc拒绝响应以get方式发送的ajax请求,需要使用JsonRequestBehavior.AllowGet...、如何在Action获取表单提交的数据?

2.1K50

探寻ASP.NET MVC鲜为人知的奥秘(2):与Entity Framework配合,让异步贯穿始终

我们都知道,微软的IIS服务器每个线程数量是有限的,在以往的ASP.NET MVC应用程序,当一个请求到达服务器,IIS从线程池中创建一个线程开始执行调用,当执行完所有的操作将请求返回,再释放线程,...可如果程序访问人数增加,线程就成了一种稀缺的资源,如果在一次请求,需要访问远程数据库、或者进行大的IO处理,这是请求很可能就会长期的持有一个线程,当用户量大这种长期请求多的时候,线程池就会迅速的被占满...How 在ASP.NET MVC3种,已经提供了AsyncController,可以创建异步的控制器,可那时候需要用到Async和Completed方法对的模式来处理,现在,我们不需要单独去实现继承自...而且,在Entity Framework6,同样实现了对数据的异步查询和保存的功能,这就使得我们在应用程序整个过程,都可以以异步的方式处理逻辑。...Let’s  do   it 示例使用VS2013创建一个ASP.NET MVC5项目”AsyncExample“(纠结于设计原则,注意重点) 在Models文件夹添加一个用户类: namespace

68170

Asp.Net MVC4入门指南(8):给数据模型添加校验器

您可以在一个地方 (模型类) 以声明的方式指定验证规则,这个规则会在应用程序的任何地方执行。 让我们看看您如何在本电影应用程序,使用此验证支持。...上面的顺序将触发必需的验证,并不需要点击提交按钮。在不输入任何字段的情况下,直接点击提交按钮,将触发客户端验证。直到没有客户端验证错误的情况下,表单数据才会发送到服务器。...下图显示了如何禁用 Internet Explorer 的 JavaScript。 ? ? 下图显示了如何在火狐浏览器禁用 JavaScript。 ?...下图显示了如何在 Chrome 浏览器禁用 JavaScript。 ? 下面是框架代码在之前的教程中生成的Create.cshtml视图模板。...(DataType.PhoneNumber)] [DataType(DataType.Url)] 上面列出的属性只提供视图引擎来显示数据的格式(: 为 URL ,< href="mailto:

4.6K100

ASP.NET MVC编程——控制器

每一个请求都会经过控制器处理,控制器的每个方法被称为控制器操作,它处理具体的请求。 1操作输入参数 控制器的操作的输入参数可以是内置类型也可以是自定义类型。...从线程池获得线程处理异步请求,异步调用完后,该线程回到线程池以便可以处理其他请求,同时通知ASP.NET重新抓取一个线程(不一定是处理异步请求的线程)来完成具体的异步操作(输出数据等)。...注意如果控制器使用HttpPost特性修饰,客户端发起的是get请求,也会认为是无法找到操作。...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

2.1K90
领券