2012-02-17 2 views
0

사용자가 내 홈 페이지를 방문하고 로그인 버튼을 클릭하면 일반 양식이 포함 된 jquery UI 대화 상자가 나타납니다.mvc3보기에서 리디렉션하고 부분 적으로 모두 리디렉션하여 http 500 오류가 발생합니다.

 @using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { @name = "user-login-form", @id = "user-login-form" })) 
     { 
      <fieldset style="margin: 10px 0 0 0;"> 
       <label for="name"> 
        Username</label> 
       <input type="text" name="UserName" id="username" class="text ui-widget-content ui-corner-all" /> 
       <label for="password"> 
        Password</label> 
       <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" /> 
      </fieldset> 
     } 

이 양식은 가정용 컨트롤러의 색인보기의 일부인 부분보기에 있습니다. 보시다시피 계정 컨트롤러의 로그온 작업에 게시됩니다. 다음은 그 행동입니다.

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) // rename either the model or the view name field to match. 
    { 
     if (ModelState.IsValid) 
     { 
      if (MembershipService.ValidateUser(model.UserName, model.Password)) 
      { 
       AuthenticationService.SignIn(model.UserName, model.RememberMe); 

       if (Url.IsLocalUrl(returnUrl)) 
       { 
        return Redirect(returnUrl); 
       } 

       if (MembershipService.IsUserInRole(model.UserName, "ServiceProvider")) 
       { 
        return RedirectToAction("Index", "ServiceProvider"); 
       } 

       return RedirectToAction("Index", "Project"); 
      } 

      ModelState.AddModelError("", "The user name or password provided is incorrect."); 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

모델이 계정 컨트롤러의 일부 로그온도 (일부 생략)를 전송 유효하지 않은 경우에서 볼 수 있듯이.

문제는 ... 부분/일반보기에서 양식을 채울 지, 아니면/Account/LogOn 페이지에서 500 오류로 끝나는 지 여부입니다. 나는 그것을 100 번 넘었고 무엇이 잘못 될지 알 수가 없다. 데이터가 정확합니다. 사용자 이름과 암호의 유효성은 검사되지만 실제로는 프로젝트 컨트롤러의 Index 작업에는 적용되지 않습니다.

프로젝트 컨트롤러의 인덱스 작업이 존재하며 모든 작업은 View()를 반환합니다. Index.cshtml 파일이 존재합니다. 모든 모델을 제거하고 페이지를 가능한 간단하게 만들지 만 여전히 같은 문제로 끝납니다./Project/Index를 만드는 대신/Account/Logon 페이지에서 500 오류를 유지하십시오.

일부 검색을 수행했으며 아약스 등에서 리디렉션하는 것과 관련된 일부 항목을 찾았습니다. 일부는 리디렉션하지 말고 일반보기에서는 리디렉션하지 않아야한다고 말합니다. IIS 문제 일 수 있는지 확실하지 않은가요? 확실히 어떤 것을 시도해도 좋습니다 ... 2 일 동안 이것을 고심했습니다.

답변

0

1) 500 서버 오류, 이것은 당신에게보다 포괄적 인 설명을 제공하는 스크립트는이 '친절한 HTTP 오류'를 사용 error.So (404)와 같은 깨진 링크가 아닌, 오류가 발생했음을 의미

감사합니다, 스크립트를 디버그 할 수 있습니다. 2) 아래의 Mvc 3에서 Razor 구문을 사용하거나보기에 Strongly type을 사용하십시오. 3) 비밀번호 속성이 잘못되었을 수 있습니다 (비밀번호가 아닌 비밀번호).

@using (Html.BeginForm()) {

<div> 
    <fieldset> 
     <legend>Account Information</legend> 
 <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> 


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

}

+0

당신이 옳았 ... 그것은 대상보기에 숨겨진 컴파일 오류가 있었다 . 나는 분명히 존재하지 않는 @ html.Partial ("...")이라고 말하면서 부분적으로 렌더링하려했습니다 ... –

관련 문제