[英]MVC4 - Login box within Layout page using Partial
我有一个布局页面,希望它有一个登录框,或显示登录用户,以及一个登出链接。
目前,我的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'吗? 如果是这样,怎么样?
更改:
@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>
}
"User"
是您的控制器, "Login"
是处理Login的POST
操作方法。
http://msdn.microsoft.com/en-us/library/dd492590(v=vs.118).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.