我习惯了 ASP.NET Web 表单,并且正在慢慢学习 ASP.NET MVC。我的网站主页上有一个小登录表单。我的自然想法是,这个登录表单可能在其他地方有用,它不是主页的主要操作,所以我想将它分离成一个局部视图。而且因为它与帐户有关,所以我希望在我的 AccountController 而不是我的 HomepageController 中登录。
登录表单是一个非常基本的强类型部分视图:
@model Models.Account.AccountLogin
<h2>Login Form</h2>
@using (Html.BeginForm("_Login", "Account")) {
@Html.ValidationSummary()
<div>
<span>Email address:</span>
@Html.TextBoxFor(x => x.EmailAddress)
</div>
<div>
<span>Password:</span>
@Html.PasswordFor(x => x.Password)
</div>
<div>
<span>Remember me?</span>
@Html.CheckBoxFor(x => x.RememberMe)
</div>
<input type="submit" value="Log In" />
}
</div>
在主页上,我有这个:
@Html.Action("_Login", "Account")
最后,在帐户控制器中,这是:
[HttpGet]
public PartialViewResult _Login()
{
return PartialView();
}
[HttpPost]
public PartialViewResult _Login(AccountLogin loginDetails)
{
// Do something with this
return PartialView();
}
现在,当我加载我的主页时,它看起来不错并且包含表单。当我单击登录按钮时,它会将我带到myurl/Account/_Login
,其中包含表单,但不在 _Layout 母版页中,只是基本的纯 HTML,当我单击登录时它根本没有做任何事情。
我很确定我错过了我应该在这里做的一些基本方面,有人可以指出我正确的方向吗?