仅在从特定操作重定向时才允许访问操作

Fab*_*ano 6 .net c# asp.net-mvc asp.net-mvc-2

是否有一种限制对操作的访问权限的好方法,因此如果您从另一个操作重定向,则只能访问它.例如:

    [HttpPost]
    public virtual ActionResult Create(MyViewModel vm)
    {            
        if (ModelState.IsValid)
        {
            // do some work

            return RedirectToAction("CreateSuccess");
        }
        else
        {
            return View(vm);
        }
    }


    public virtual ActionResult CreateSuccess()
    {
        // only allow execution if you were redirected from Action "Create" 
    }
Run Code Online (Sandbox Code Playgroud)

And*_*ose 7

一种简单的方法是在第一个方法中在TempData中存储一个标志,并检查该标志是否存在于重定向到的方法中.
TempData用于在操作请求之间传递状态信息,并且仅持续请求的持续时间,因此您无需担心将其清除.