2016-11-11 4 views
1

현재 사용자 관리 기능에 대해 연구 중입니다. 나는 그가에 로그인하기 전에이 같은 사용자 관리 페이지에 액세스하려고하면 인증을 추가하고 내 로그인 페이지로 사용자를 리디렉션하려고 :로그인하지 않은 상태에서 다른보기로 사용자 리디렉션

[HttpGet] 
public ActionResult UsersList() 
{ 
    if (Session["UserName"] == null) 
    { 
     RedirectToAction("Login", "Login"); 
    } 
    else 
    { 
     var User = new User(); 
     User.usersList = DBManager.Instance.GetUsersList(); 
     User.PreferedLanguages.Add(new SelectListItem { Text = "ENGLISH", Selected = true, Value = "ENGLISH" }); 
     User.PreferedLanguages.Add(new SelectListItem { Text = "DUTCH", Value = "DUTCH" }); 
     return View(User); 
    } 
} 

하지만 바로 조치 결과에 대한 뷰를 반환해야합니까? 이 코드는 컴파일되지 않습니다 나는 다음과 같은 오류 얻을 :

오류 4 'WebApplication9.Controllers.UserManagementController.UsersList을() : 모든 코드 경로는 값> E를 반환하지 : \ 일 \ WebApplication9 컨트롤러 \ \ UserManagementController.cs

이 시점에서 다른 컨트롤러보기를 반환 할 수 있습니까? 대신 간단한 RedirectToAction

return RedirectToAction("Login", "Login"); 

:

+3

'return RedirectToAction ("Login", "Login"); (누락 된'return') –

+1

당신은 모든 행동 방법에서 그것을하고 있습니까? 어떤 종류의 인증 (_i.e. formas authentication_)을 구현하고'[Authorize]'속성을 사용하여 모든 것을 처리해야합니다. –

+0

@ AdilMammadov : asp.net mvc에서 사용할 수 있습니까? 나는 이것에 초보적이다. 세션을 통해 사용자 이름을 유지함으로써이 작업을 수행 할 것을 고려했습니다. – ViVi

답변

1

는 다음과 같은 코드를 사용합니다.

ActionResult은 조치가 완료된 후 조치 실행자가 수행 할 지침 세트입니다. RedirectToActionResult (반환 유형은 RedirectToAction)에는 올바른 리디렉션을 수행하기 위해 Response에 작성해야하는 지침이 포함되어 있습니다.

내가 이해하는 한, 이것은 동작 호출이 작동하는 방식이며, 공식 문서는 이것에 대한 또 다른 의견을 갖고있을 수도 있습니다.

+0

응답 해 주셔서 감사합니다. Stephen Muecke 님의 의견대로 수정했습니다. – ViVi

+0

@ViVi 환영합니다. 슬픈 일이지만, 제 대답은 조금 후에 Stephen Muecke 님의 의견입니다. –

관련 문제