2013-12-23 50 views
0

我有一個佈局頁面,並希望它有一個登錄框,或顯示登錄用戶以及註銷鏈接。MVC4 - 在佈局頁面中使用部分的登錄框

此刻,我SiteLayout.cshtml文件中有這樣的:

<body> 

    <h1>Basic Finance</h1> 

    <div> 
     @if (Request.IsAuthenticated) 
     { 
      @Html.ViewBag.UserDisplay 
      @Html.ActionLink("[Logout]", "LogoutUser", "User") 
     } 
     else 
     { 
      @Html.Partial("_Login") 
     } 
     <hr /> 
     @RenderBody() 
    </div> 
</body> 

然後,我在我的意見/共享/,我有_Login.cshtml文件:

@model BasicFinanceUI.Models。 LoginModel

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary() 
    <p> 
     Username: @Html.TextBoxFor(x => x.Username) 
     Password: @Html.TextBoxFor(x => x.Password) 
     Remember Me: @Html.DropDownListFor(x => x.RememberMe, new[] 
       { 
        new SelectListItem() { Text = "Yes", Value = "true"}, 
        new SelectListItem() {Text = "No", Value = "false"} 
       }, "Select") 

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

} 

此代碼已從標準視圖中移出。我有它,然後只是一個'登錄'鏈接,而不是佈局頁面中的登錄框。我想顯示一個登錄框。

我的登錄代碼仍然在我創建的名爲'UserController'的控制器中。但是,我不知道如何告訴我的登錄框使用該控制器。這是正確的方式做我想做的事(或者應該有一個控制器爲我的登錄部分)。可以使用我的'UserController'嗎?如果是這樣,怎麼樣?

回答

2

變化:

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary() 
    <p> 
     Username: @Html.TextBoxFor(x => x.Username) 
     Password: @Html.TextBoxFor(x => x.Password) 
     Remember Me: @Html.DropDownListFor(x => x.RememberMe, new[] 
       { 
        new SelectListItem() { Text = "Yes", Value = "true"}, 
        new SelectListItem() {Text = "No", Value = "false"} 
       }, "Select") 

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

} 

要:

@using (Html.BeginForm("Login", "User")) 
{ 
    @Html.ValidationSummary() 
    <p> 
     Username: @Html.TextBoxFor(x => x.Username) 
     Password: @Html.TextBoxFor(x => x.Password) 
     Remember Me: @Html.DropDownListFor(x => x.RememberMe, new[] 
       { 
        new SelectListItem() { Text = "Yes", Value = "true"}, 
        new SelectListItem() {Text = "No", Value = "false"} 
       }, "Select") 

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

} 

哪裏是你的控制器和"Login"是處理登錄的POST你的操作方法。

http://msdn.microsoft.com/en-us/library/dd492590(v=vs.118).aspx

+0

謝謝。完成並工作。這是一個很好的模式? – Craig

+1

是的,這是您如何指定特定表單帖子應該使用的路由 - 尤其是在表單處於部分/共享視圖的情況下。 – xandercoded

相關問題