2009-11-12 4 views
3

마스터 페이지에 로그인 컨트롤을 배치하려는 ASP.NET MVC 2 웹 사이트가 있습니다. 마스터 페이지에도 유효성 검사 오류 메시지가 표시되기를 원합니다. 이 일을 어떻게 하죠? 내가 이런 식으로하면 :ASP.NET MVC 마스터 페이지의 로그인 컨트롤

<% using (Html.BeginForm("LogOn", "Account", FormMethod.Post)) { %> 

    <%= Html.LabelFor(d => d.UserName)%>: 
    <%= Html.EditorFor(d => d.UserName)%> 

    <%= Html.LabelFor(d => d.Password)%>: 
    <%= Html.Password("Password")%> 

    <input type="submit" value="Login" /> 

    <%= Html.ValidationSummary() %> 

<% } %> 

... 계정 컨트롤러 메서드가 잘 호출됩니다. 그러나 메서드에서 View()을 반환하면 "LogOn"이라는 뷰가 존재하지 않는다는 오류가 발생합니다. 의도 한 결과를 달성하려면 어떻게해야합니까?

답변

1

사용자 이름과 비밀번호와 함께 LogOn 작업을 호출하면보기를 반환하는 대신 로그인에 성공하면 리디렉션 할 반환 URL을 전달할 수 있습니다.

+0

메소드에서'Redirect (returnUrl)'을 리턴한다는 것을 의미합니까? 그게 올바른 페이지로 이동하지만 검증 오류 메시지를 포함하여 ModelState를 잃어 버리게됩니다. – Jacob

+0

원하는 상태를'TempData'에 넣고 리다이렉션하십시오. –

+0

나는 이것을 명심 할 것이다. 그것은 작동해야하지만 일종의 해결 방법처럼 보인다. 누군가가 MVC 프레임 워크 내에서 응답을 받기 전에 자연 스럽다고 느끼는 해결책이 있는지 기다릴 것입니다. – Jacob

0

분명히 묻는 것이 싫지만 게시물에서 명확하지 않습니다. "보기"의 ​​"계정"폴더 아래에 실제로 "로그 온"보기가 있습니까? 단순히 액션에서보기()를 호출하는 경우

흠 ... 당신은 단지 하나를 반환 할 수 있습니다

, 그것은 (이 경우 "로그온"에서) 활동과 같은 이름을 가진 뷰를 찾습니다 로그인 컨트롤러에서보기 : ViewModel을 해당보기로 전달하는 방법은 무엇입니까?

잘하면 요청에서 refferal URL을 얻을 수 있습니다 .. 그런 다음 컨트롤러/액션을 결정하고 RedirectAction() .. 이번에는 모델 오류가 통합되었습니다. 내가 생각할 수있는

두 가지 더 :

  1. 은 iframe 대응으로 사용자 로그인 제어를 통합. 부분보기를 전체보기로 전달해야합니다.

  2. JQuery와

    $ 갔지 (URL, 널 (null), 기능 (결과) { $ (loginDiv) .html 중에서 (결과);
    을})를 사용;

로그인 동작을 보내려면 로그인 컨트롤러에서 PartialView ("LogOn")를 반환합니다.

일부 페이지 제출과 나머지 페이지 내용은 변경되지 않습니다.

+0

LogOn보기로 이동하고 싶지 않습니다. 'View()'를 돌려 주면 존재하지 않으면 에러가납니다. 보기를 만들면 그 페이지로 이동합니다. 나는 그것이 유효성 검사 오류가있는 경우 원본 페이지로 돌아가고 싶습니다. – Jacob

+0

추가 제안 해 주셔서 감사합니다. – Jacob

관련 문제