是否有任何简单的方法可以区分由于客户端Web浏览器请求而“直接”命中的ASP.NET MVC控制器操作,以及Controller.RedirectToAction
调用或{{1}结果?
答案 0 :(得分:1)
您可以选择在Action
方法中添加参数,以便传入一个值,指明它是Controller.RedirectToAction
,{{1} }或客户端浏览器请求。将此与一些服务器变量检查相结合,您可能会想出一些当时大多数的东西。
RedirectToRoute
答案 1 :(得分:1)
或者,在TempData中放置一个值
public class SomeController : Controller
{
public ActionResult SomeAction()
{
// ... do stuff ...
TempData["SomeKey"] = "SomeController.SomeAction";
return RedirectToAction("SomeOtherAction", "SomeOtherController");
}
}
public class SomeOtherController : Controller
{
public ActionResult SomeOtherAction()
{
if (TempData.ContainsKey("SomeKey"))
{
// ... do stuff ...
}
// etc...
}
}
(来自Craig Stuntz)
答案 2 :(得分:0)
如果动作从重定向到动作命中,则Request.ServerVariables [“http_referrer”]将为空,我认为。否则,它将是与“直接”访问的操作方法对应的URL。
善,
丹