2012-09-05 4 views
0

MVC3의 기본 LogOn 모델을 사용합니다. LogOn 부분보기가 레이아웃보기에 있습니다.mvc3에서 URL을 제어하는 ​​방법

@Html.Partial("~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel()) 

에 로그온 한 후, URL은 다음과 같습니다

http://localhost:20234/?UserName=TestUsername&Password=121212&RememberMe=True 

내가 URL에서 볼 비밀번호를 돼요. URL에서 암호 (Username, RememberMe)를 어떻게 제거합니까?

답변

2

GET 방식으로 서버에 데이터를 전송하면 매개 변수가 URL에 표시됩니다. 이 경우에는 POST 메소드를 사용해야합니다. 예를 들면 :

<form action="/Account/Logon" method="POST"> 
    <input type="text" name="Username"/> 
    <input type="text" name="Password"/> 
    <input type="submit"/> 
</form> 
+0

쓴 : @using (Html.BeginFo rm ("LogOn", "Home", FormMethod.Post)) {....} LogOn 부분보기 –

+0

예, 다음과 같이 렌더링됩니다.

...
이제 양식을 게시해야합니다. – karaxuna

+0

나는 이미 그러한 편지를 썼다. 이 경우 암호가 URL에있는 것 같습니다. –

1

1) 기본 노선 피스 변화 :

routes.MapRoute(
        "DefaultSite", 
        "{controller}/{action}/{id}", 
        new 
         { 
          controller ="Account", 
          action ="LogOn", 
          id = UrlParameter.Optional 
         } 
        ); 

2) 마스터로드 파일에 대한 부분 부하 : 추가에

@using (Html.BeginForm("LogOn","Account",HttpMethod.Post)) 
    { 
     @Html.AntiForgeryToken() 
     @Html.Partial("~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel())   
    } 

3) 그리고 계정 contrroller 당신의 로그온 로그 :

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Login(LogOnModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       //TODO: 

       return RedirectToAction("index", "home"); 
      } 

      // If we got this far, something failed, redisplay form 
      ModelState.AddModelError("", @"The user name or password provided is incorrect."); 
      return View(model); 
     } 
+0

LogOn은 내 애플리케이션의 부분보기이며 홈보기의 장소입니다. –

관련 문제