我正在使用MVC3 / Razor。但是我不明白为什么我在redirecToAction时会出现上一页的网址。
场景:一旦用户点击主页上的注册,如“帐户/注册”,他就会得到RedirectToAction(“AcceptCondition”),所以一旦用户接受条件并发布,那么用户就会获得RedirectToAction(“注册”) )我将检查他是否来自“AcceptCondition”页面,然后他可以继续,否则用户将返回“AcceptCondition”页面。因此,当我将用户从注册页面重定向到AcceptCondition页面时,地址栏中的URL显示为“http:// localhost:55104 / Account / Signup”而不是“http:// localhost:55104 / Account / AcceptCondition”
我知道当他点击注册时我可以直接将用户发送到“Account / AcceptCondition”,但我只是按照上面的方案。
public ActionResult Signup(string ru)
{
if ((ru == "/Account/AcceptCondition") || (ru == "/Account/Signup"))
{
return View();
}
else
{
return RedirectToAction("AcceptCondition");
}
}
[HttpGet]
public ActionResult AcceptCondition()
{
return View();
}
[HttpPost]
public ActionResult AcceptCondition(AcceptConditionViewModel acceptCondiViewModel)
{
if (acceptCondiViewModel.TermAndCondi == true)
{
return RedirectToAction("Signup",
"Account",
new { ru = "/Account/AcceptCondition" });
}
else
{
return View();
}
}
答案 0 :(得分:0)
注册GET检查是指,如果不是AcceptCondition,则重定向到AcceptCondition 如果是AcceptCondition,则渲染正常的注册视图。
AcceptCondition GET呈现AcceptCondition视图
听起来像推荐人检查不对,所以再次呈现/ account / signup? 您的代码是什么样的。
答案 1 :(得分:0)
看来您在第一个函数中传递了'returnUrl'参数,但在函数体和第三个函数的RedrectToAction调用中都将其引用为'ru'。确保您与参数名称保持一致,因为这可能是错误逻辑和错误/不工作重定向的原因。