Почему ссылка на предыдущую страницу отображается в моей адресной строке в приложении MVC3 Razor? - PullRequest
0 голосов
/ 17 марта 2012

Я использую MVC3 / Razor. Но я не понимаю, почему URL предыдущей страницы появляется, когда я 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();
    }
}

Ответы [ 2 ]

0 голосов
/ 17 марта 2012

Похоже, что вы передаете параметр 'returnUrl' в своей первой функции, но ссылаетесь на него как 'ru' как в теле функции, так и в своем вызове RedrectToAction в третьей функции. Убедитесь, что вы соответствуете своим именам параметров, так как это может быть причиной неправильной логики и плохих / неработающих перенаправлений.

0 голосов
/ 17 марта 2012
  1. Проверки регистрации GET ссылаются, если не на AcceptCondition, затем перенаправляют на AcceptCondition, если это AcceptCondition, а затем визуализируют нормальное представление регистрации.

  2. AcceptCondition GET отображаетПредставление AcceptCondition

  3. POST AcceptCondition делает RedirectToAction ("SIGNUP")
  4. Регистрация POST создает пользователя (Предполагая), затем идет?

Походит на рефералапроверка неверна, так что / account / signup отображается снова?Как выглядит ваш код.

...