2016-11-04 3 views
0

프로젝트에서 비밀번호 기능을 재설정했습니다. 나는 토큰을 가진 사용자에게 링크를 보내고있다. 링크를 클릭 한 후 내 HomeController 안에 들어가서 ResetPassword 메소드를 실행해야합니다. 내 문제는 어디서 내가 넣을 때 ResetPassword 부분보기 (모달)를 넣어야하는지 잘 모르겠다. 로그인 페이지를 열면 가져온다. 그들이 그것을 클릭하면부분 뷰는 어디에 넣어야합니까?

http://...myurlaction=resetpassword&userid=5&[email protected]&token=1234564

나는이 방법으로 이동해야합니다 :

은 사용자 이메일에서이 링크를 고려 첫째 가야

을 방법 :

[HttpGet] 
[Route("resetpassword")] 
[AllowAnonymous] 
public ActionResult ResetPassword(ResetPasswordRequest resetPasswordRequest) 
{ 
    //check if Token is valid show the view 
    return PartialView(); 
} 

게시물 이후에 POST 방법으로 이동하십시오.

[HttpPost] 
[Route("resetpassword")] 
public ActionResult ResetPassword(ResetPasswordView resetPasswordView) 
{ 
    return PartialView(); 
} 

이 부분이다 :

<div id="myModal" class="modal"> 
<div class="modal-content"> 
    <span class="close">x</span> 
    @using (Html.BeginForm("resetpassword", "Home", FormMethod.Post)) 
    { 
     <h5>Reset Your Loan Center Password</h5> 
     <table> 
      <tr><td>Email Address</td><td><input type="email" name="Email" placeholder="[email protected]"></td></tr> 
      <tr><td>Password</td><td><input type="Password" name="Password" placeholder="Create Password"></td></tr> 
      <tr><td>Confirm Password</td><td><input type="Password" name="ConfirmPassword" placeholder="Re-enter Password"></td></tr> 
      <tr><td colspan="2"><input type="submit" value="Reset Password"></td></tr> 
      <tr> 
       <td class="errMessage" colspan="2"> 
        @Html.ValidationSummary(true) 
       </td> 
      </tr> 
     </table> 
    } 
</div> 

내 문제는 내가 어디 나는 그것이 경우에도 비밀번호 재설정보기를 표시해야하기 때문에 @Html.Partial("Login") 이 있어야 위치를 알 수 없다는 것입니다 I 돈 그것을 보여줄 필요가 없습니다.

+0

당신 POST 방법도 필요

[HttpGet] [Route("resetpassword")] [AllowAnonymous] public ActionResult ResetPassword(ResetPasswordRequest resetPasswordRequest) { //check if Token is valid show the view Viewbag["state"] = "ResetPassword"; return YourLoginPage(); } 
는'[AllowAnonymous]'- 사용자가 아직 승인하지 않은 –

+0

@Stephen Muecke (그들은 동일한 서명을하지 말았어야), 문제는 그게 내가 후 게시 간다입니다 보기에 값을 입력하지만 얻을 수는 없습니다. – Alma

답변

1

Login 페이지의 코드를 다시 사용하고 싶기 때문에 설명에 따라 PartialView을 사용했다고 생각합니다. 기본적으로 Login 페이지에는 로그인 용과 비밀번호 재설정 용의 두 가지 상태가 있습니다. 그런 다음

@if (Viewbag["state"] == "Login") { 
    Html.RenderPartial("Login"); 
} else { 
    Html.RenderPartial("resetpassword"); 
} 

,이 같은 LoginControllerResetPasswordController 당신의 Viewbag의 적절한 값을 설정해야 할 일 : 활성화되는 상태를 알고, 당신은, 당신의 Login 페이지에 뭔가를 플래그를 가져야한다 :

0

질문을 올바르게 이해할 경우 홈 컨트롤러에서 부분을 호출 할 때 부분 뷰가 응용 프로그램의 Views \ Home 폴더에 있어야합니다. 암시 적으로 말하자면, 엄격하게 말해서 비밀번호 재설정은 가정용 컨트롤러에있는 것보다 "계정"기능에 가깝기 때문에 조치 방법을 계정 컨트롤러로 옮길 수 있습니다. 이 경우 부분보기가 Views \ Account에 추가됩니다.

+0

나는 어디에서 @ Html.Partial ("resetpassword") – Alma

관련 문제