2015-02-09 2 views
1

У меня есть контроллер CMS, как вы можете увидеть здесь:Перенаправление к действию не работает в MVC

[HttpGet] 
     public ActionResult Login(string returnUrl) 
     { 



      return View(); // show the login page 
     } 
     UserRepository ObjUserRepository = new UserRepository(); 
     [HttpPost] 
     public ActionResult Login(DomainClass.User loginInfo, string returnUrl) 
     { 


      if (ObjUserRepository.FindBy(i => i.Email == loginInfo.Email & i.Password == loginInfo.Password).Any()) 
      { 
       DomainClass.User objUser = ObjUserRepository.FindBy(i => i.Email == loginInfo.Email & i.Password == loginInfo.Password).FirstOrDefault(); 

       FormsAuthentication.SetAuthCookie(loginInfo.Email, false); 
       if (shouldRedirect(returnUrl)) 
       { 
        return Redirect(returnUrl); 
       } 

       if (objUser.Pemission == "professor") 
       { 
        return RedirectToAction("Index", "Home", new { Area = "Teacher" }); 
       } 


      } 


     return View(loginInfo); 
    } 

Я называю этот адрес ../cms/login и мой login вид появился, я войти в username и password, эта часть кода выполняется:

if (objUser.Pemission == "professor") 
       { 
        return RedirectToAction("Index", "Home", new { Area = "Teacher" }); 
       } 

но перенаправляет меня MVC на страницу входа снова, но он должен перенаправить меня /teacher/home/index

+0

Вы пытались перехватить указатель контроллера домашнего контроллера, действие индекса? – clement

+0

Да, я сделал. Но ничего не происходит –

+2

После регистрации вы можете войти в URL без перенаправления в код позади? это работает? – clement

ответ

1

Изменение

return RedirectToAction("Index", "Home", new { Area = "Teacher" }); 

Для

return RedirectToAction("Index", "Home", new { area = "Teacher" }); 

Параметр area в нижнем регистре.

Смежные вопросы