2011-04-12 5 views
1

안녕하세요, 저는 mvc.net에 처음 오릅니다. masterpage에 로그인되어 있습니다. 이제 어떤 페이지에서나 로그온 할 수 있습니다. 그러나 나는 그것을 작동시킬 수없는 것 같습니다. 나는 메서드 logon과 마스터 페이지를 가진 AccountController를 가지고있다. 이것은 masterpageMVC C# 로그인 마스터 페이지

<% using (Html.BeginForm("LogOn", "Account")) 
       { %> 
      <%: Html.ValidationSummary(true, "Login foutief. probeer opnieuw.") %> 
      <div id="login_panel"> 

        <fieldset> 

         <div class="editor-label"> 
          <%: Html.LabelFor(m => m.UserName) %> 
         </div> 

         <div class="editor-field"> 
          <%: Html.TextBoxFor(m => m.UserName) %> 
          <%: Html.ValidationMessageFor(m => m.UserName) %> 
         </div> 

         <div class="editor-label"> 
          <%: Html.LabelFor(m => m.Password) %> 
         </div> 

         <div class="editor-field"> 
          <%: Html.PasswordFor(m => m.Password) %> 
          <%: Html.ValidationMessageFor(m => m.Password) %> 
         </div> 

         <div class="editor-label"> 
          <%: Html.CheckBoxFor(m => m.RememberMe) %> 
          <%: Html.LabelFor(m => m.RememberMe) %> 
         </div> 

         <p> 
         <input type="submit" value="Log On" /> 
         </p> 
        </fieldset> 

      </div> 
      <% } %> 

에 로그인입니다 그리고 이것은

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      if (persoonRepos.aanmelden(model.UserName, model.Password)) 
      { 
       FormsService.SignIn(model.UserName, model.RememberMe); 
       if (!String.IsNullOrEmpty(returnUrl)) 
       { 
        return Redirect(returnUrl); 
       } 
       else 
       { 
        return RedirectToAction("Index", "Home"); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      } 
     } 
     return View(model); 
    } 

내가 그것을 테스트

, 그것은 늘 accountmodel 로그온 방법에 갈 컨트롤러입니다.

나를 도울 수있는 누군가?

+0

어디에서 테스트를 할 때 중단 점을 설정하여 LogOn 메소드에 들어가는 지 확인하고 있습니까? – curtisk

+0

내 중단 점이 로그온 방법에 있습니다. 문제가되는 것은 아닙니다. 나는이 줄로 생각했다 : Html.BeginForm ("LogOn", "Account") 그것을해야한다. –

+0

global.asax에서 경로를 변경 한 적이 있습니까? – curtisk

답변

0

당신이 말한 것을 기반으로, 제가 생각할 수있는 것은 LogOn Controller Action을 누르는 것에서 폼을 유지하는 것입니다. 마스터 페이지는 LogOnModel을 인식하지 못하고 제대로 전달할 수 없습니다. 컨트롤러. 당신이 당신의 MasterPage에 직접 포함 된 위의 양식이있는 경우이

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

같은 라인이됩니다 MasterPage의 맨 위에

, 그럼 그렇게하게는 LogOnModel 인식 할 필요가있다 그

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<YourProjectName.Models.LogOnModel>" %> 

물론 프로젝트의 이름으로 "YourProjectName을"대체 ... 그 외형이처럼 보이게 일이 ... 그리고 우리는 당신의 설정에 표시되지 않는 뭔가 다른, 그 않는 한이 LogOn 함수는 사용자가 로그인을 제출할 때 적중되어야합니다.

+0

<% @ Master Language = "C#"Inherits = "System.Web.Mvc.ViewMasterPage "%> 아니요이 줄은 이미 코드에 있습니다.) –