我想确保QueryString中的特定参数(在本例中为request_id
)传播到重定向的操作。在RedirectToAction调用中传播QueryString参数
比方说,我有一个动作First
,
[HttpPost]
public ActionResult First()
{
////////////////////
// Lots of code ...
////////////////////
return RedirectToAction("Second");
}
现在说了,First
回传曾在QueryString
一个参数,我想传递给Second
行动。这样做将是在RedirectToAction
调用本身传递价值的一种方式,
string requestId = Request.QueryString[REQUEST_ID_KEY];
return RedirectToAction("Second", new { REQUEST_ID_KEY = requestId });
但我不得不这样做的一系列动作的,我不愿意纳入行动中请求ID传播逻辑。如果我可以将它合并到ActionFilter
中会更好,但我无法弄清楚如何将参数从ActionFilter添加到QueryString中。有任何想法吗?
@Darin ..只是为了知识..我可以知道这个实现优于Session或TempData的优点吗? – 2012-03-27 06:52:38
@alok_dida,TempData在幕后使用Session。我个人从未在我的应用程序中使用Session。我更喜欢用无状态和REST风格的方式来设计它们。所以,因为我在web.config('')中禁用了会话,所以Session和TempData不适用于我。 –
2012-03-27 06:55:10
@Darin .. Oks。还有一个问题(我希望你不会因为我的一堆问题而烦恼),我正在实现一个使用表单身份验证的应用程序。我想通过应用程序保持登录用户的“用户ID”。我如何在不使用Session的情况下实现这个场景?我正在使用MVC 3. – 2012-03-27 07:39:07