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