asp.net – 在RedirectToAction调用中传播QueryString参数
发布时间:2020-05-23 11:26:54 所属栏目:asp.Net 来源:互联网
导读:我想确保QueryString中的一个特定参数,在我的情况下,request_id被传播到重定向的操作。 例如,我有一个行动第一, [HttpPost]public ActionResult First() { //////////////////// // Lots of code ... //////////////////// return Redire
|
我想确保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");
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC不提供默认文档
- 如何实现ASP.NET 2.0,Coldfusion 5和Classic ASP之间互操作
- asp.net-mvc – MVC 5渲染视图到字符串
- asp.net-mvc – 在Controller操作方法中重用代码的最佳方法
- asp.net-core – 在ASP.NET Core MVC中,浏览器中止没有中止
- asp.net – System.Json.DLL在哪里?
- ASP.NET的友好URL
- asp.net – 正在生成无效的Webresource.axd参数
- 本地化 – MVC 3中DataAnnotations的默认错误消息的整个列表
- asp.net-core – 我为什么要选择带有.Net核心的ASP.NET Cor
推荐文章
站长推荐
- asp.net-mvc – 客户端验证未显示消息
- asp.net – 在没有Global.asax的情况下处理应用程
- asp.net-mvc – Elmah.MVC在IIS Express下工作但
- .net – 如何在ASP成员资格中使用LogOut
- 为什么我不能在ASP.net MVC中使用服务器控件?
- asp.net-core – 什么应该是WEB API Action Meth
- asp.net – Facebox为输入添加逗号
- asp.net-mvc-3 – ASP.NET MVC 3 – 在jquery对话
- asp.net-mvc – 使用没有主键的查找在dbSet中查找
- 使用WCF进行ASP.NET聊天
热点阅读
