【发布时间】:2013-10-31 15:02:57
【问题描述】:
例如,如果用户尝试访问Main 操作并在地址栏中输入mySite/Main,我希望将其强制路由到mySite/beforeMain,然后在一段时间后自动重定向到Main加工。我如何使用路由映射来做到这一点,或者这是否可以通过其他方式实现?我不想在 URL 中有查询字符串参数,或者使用 TempData/etc。以防 cookie 被禁用。
【问题讨论】:
标签: c# asp.net-mvc-4 routes
例如,如果用户尝试访问Main 操作并在地址栏中输入mySite/Main,我希望将其强制路由到mySite/beforeMain,然后在一段时间后自动重定向到Main加工。我如何使用路由映射来做到这一点,或者这是否可以通过其他方式实现?我不想在 URL 中有查询字符串参数,或者使用 TempData/etc。以防 cookie 被禁用。
【问题讨论】:
标签: c# asp.net-mvc-4 routes
也许你可以使用Url Rewrite。
您也可以使用RedirectToAction:
public ActionResult Main()
{
if(Request.QueryString["redirected"].ToString() != "true")
{
return RedirectToAction("beforeMain", "mySite");
}
return View();
}
那么您的beforeMain 操作可能是:
public ActionResult BeforeMain()
{
//do some stuff
return RedirectToAction("Main", new { redirected = "true" });
}
然后当你第二次点击 main 时,它会跳过重定向,你不会陷入循环。
【讨论】:
beforeMain 会重定向回来。没有检查,就会有一个重定向循环——但是没有路由值或 TempData,我无法检查我能想到的任何东西。