asp.net – 在RedirectToAction调用中传播QueryString参数
发布时间:2020-12-15 18:48:17 所属栏目:asp.Net 来源:网络整理
导读:我想确保QueryString中的一个特定参数,在我的情况下,request_id被传播到重定向的操作。 例如,我有一个行动第一, [HttpPost]public ActionResult First() { //////////////////// // Lots of code ... //////////////////// return RedirectToAction("Sec
我想确保QueryString中的一个特定参数,在我的情况下,request_id被传播到重定向的操作。
例如,我有一个行动第一, [HttpPost] public ActionResult First() { //////////////////// // Lots of code ... //////////////////// return RedirectToAction("Second"); } 现在说,第一个回发在QueryString中有一个参数,我想传递给第二个动作。一种方法是传递RedirectToAction调用本身的值, string requestId = Request.QueryString[REQUEST_ID_KEY]; return RedirectToAction("Second",new { REQUEST_ID_KEY = requestId }); 但是我必须在一系列操作中执行此操作,我不愿意在请求ID传播逻辑中加入。如果我可以将它包含在ActionFilter中,那将会更好,但是我无法弄清楚如何从ActionFilter向QueryString添加参数。有任何想法吗? 解决方法public class PreserveQueryStringAttribute : ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext filterContext) { var redirectResult = filterContext.Result as RedirectToRouteResult; if (redirectResult == null) { return; } var query = filterContext.HttpContext.Request.QueryString; // Remark: here you could decide if you want to propagate all // query string values or a particular one. In my example I am // propagating all query string values that are not already part of // the route values foreach (string key in query.Keys) { if (!redirectResult.RouteValues.ContainsKey(key)) { redirectResult.RouteValues.Add(key,query[key]); } } } } 接着: [HttpPost] [PreserveQueryString] public ActionResult First() { //////////////////// // Lots of code ... //////////////////// return RedirectToAction("Second"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 缺少版本和工具:.NET Core,Core Tools,dotnet C
- 谈谈分布式事务之三: System.Transactions事务详
- 在子文件夹中运行MVC的Asp.net WebForms应用程序
- asp.net – WCF与Web-api平台中的数据和事务
- asp.net – 我使用什么Active Directory字段来唯
- asp.net-mvc – 实体框架 – 如何防止创建列的模
- 构建ASP.NET应用程序 – 最佳实践
- asp.net-mvc – 使用ASP.NET MVC 3本地化非数据注
- asp.net-mvc – asp.net mvc – 子文件夹
- asp.net – 用于登录用户到网站的T-SQL AES加密与
热点阅读