如果用户直接访问事务页面,如何重定向到主页

时间:2014-09-21 04:50:36

标签: asp.net asp.net-mvc asp.net-mvc-5

在我的mvc Web应用程序中,有一些事务页面就像完成一个事务的4个步骤。如果任何用户直接访问其中一个交易页面,我需要重定向到主页。我怎样才能在MVC中实现这一目标?

先谢谢。

2 个答案:

答案 0 :(得分:1)

只需设置会话,当你像这样POST表格时(假设你没有使用ajax):

Public Class WizardController : Controller 
{
    public ActionResult Step1(Step1Dto data)
    {

        Session['step1'] = true;
        TempData['Step1'] = data;
        return View('Step2');
    }

    public ActionResult Step2(Step2Dto data)
    {
        if(Session['step1'] == null)
        {
            return RedirectToAction('Step1');
        }
        Session['step2'] = true;

        // if you want to get the data of step1..
        // pass the action name to the TempData Method.

        var myStepData1 = TempData['Step1'];
        // set the tempdata for the step2.
        TempData['Step2'] = data;;

        return View('Step3');
    }

    // and so on...
}

答案 1 :(得分:1)

您可以在交易页面的控制器操作方法中查看Request.UrlReferrer。如果它为null,则表示通过直接键入url地址来访问页面,因此您需要重定向到主页。假设交易页面是/Transaction/Step1,这是控制器操作方法的样子:

public ActionResult Step1()
{
    if (Request.UrlReferrer == null)
    {
        // redirect to home page here
        return RedirectToAction("Index", "Home");
    }
    else
    {
        // do something and display the transaction page
    }
}