Так в том же контроллере у меня есть способ Войти Действие, как это:Переходит ли от одного метода действий к другому методу действия, очищает переменные класса?
public ActionResult Login()
{
LoginModel model = this.LoginManager.LoadLoginPageData();
this.ForgotPasswordMethod = model.ForgotPasswordMethod;
return View(model);
}
Обратите внимание, я установил переменную там: ForgotPasswordMethod
Так что теперь, когда на этой странице, если они нажимают на ссылку, он Вызов другого результата действия в том же классе контроллера, как это:
public ActionResult ForgotPassword()
{
if (!string.IsNullOrWhiteSpace(this.ForgotPasswordMethod) && this.ForgotPasswordMethod.Trim().ToUpper() == "TASKS")
return View();
return null; //todo change later.
}
Примечание Я попытался прочитать значение ForgotPasswordMethod, но это было NULL
, но это не равно нулю, когда я нахожусь в Login() method.
Итак, что мне делать?
Вы можете использовать 'TempData'. –
Каждый раз, когда действие MVC обрабатывает запрос, создается новый экземпляр контроллера. Объект, который вы получили, когда был вызван логин, - это не то же самое, что и при вызове ForgotPassword. он не имеет статуса как http. Если вы поместите метод конструктора с точкой останова в контроллере и отлаживаете, вы увидите, что он будет вызываться каждый раз. – repeatdomiau