3

MVC3을 사용 중입니다. 로그인이 성공하면 마스터 페이지에 사용자의 성명 (예 : 환영 잭)을 표시해야합니다. 전체 이름은 'UserProfile'이라는 다른 테이블에 있습니다. 전통적인 asp.net 웹 양식에서 쉽게 할 수 있습니다. 하지만 난 MVC에서 그렇게하는 방법을 모른다. !! 부분보기 이름 'LogOnUserControl.ascx'가 있습니다. 이 부분보기에서 로그인 사용자 이름을 보여주는 다음 코드가 있습니다.사용자 이름 대신 사용자 이름 전체 표시

Welcome <strong><%: Page.User.Identity.Name %></strong>! 

마우스 오른쪽 버튼을 클릭하고 '컨트롤러로 이동'을 클릭하면 아무데도 가지 않습니다. 누구든지 사용자의 원래 이름을 얻는 방법에 대해 안내 할 수 있습니까 ??

답변

2

이 경우 하위 작업을 사용할 수 있습니다. 인증을 이미 설정했다고 가정하면 하위 작업에서 UserProfile 테이블을 조회하고 사용자 데이터를 나타내는 뷰 모델을 사용하여 부분 뷰를 렌더링 할 수 있습니다.

그래서 귀하의 마스터 페이지에서, 당신은 것입니다 :

[ChildActionOnly] 
    public PartialViewResult UserLogonInfo() 
    { 
     IPrincipal principal = HttpContext.User; 
     LogonInfoViewModel model = UserDataRepository.GetUserLogonInfo(principal); 
     return PartialView(model); 
    } 
+0

안녕하세요 :

<%= Html.RenderAction("UserLogonInfo", "Account")%> 

는 그런 다음 사용자 데이터를 가져 와서 렌더링하는 자식 작용이있는 계정 컨트롤러를 가질 수 있습니다. 답장을 보내 주셔서 감사합니다. 나는 혼란 스럽다. 수 UserDataRepository.GetUserLogonInfo (교장)에서 온 설명 plz ?? – kandroid

+0

@kandroid 당신이 직접 작성한 UserDataRepository. LogonInfoViewModel을 반환하면 데이터베이스 등에서 가져옵니다. – Junto

관련 문제