我想在我的主页上登录一个表单。在index.cshtml
我有这样的:ASP.NET MVC 4 - 登录首页
@using (Html.BeginForm("Login", "AccountController", FormMethod.Post)) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div>
<div class="usernametb">
@Html.LabelFor(m => m.LoginMod.UserName)
</div>
<div class="usernametb">
@Html.TextBoxFor(m => m.LoginMod.UserName, new { style = "width:150px" })
@Html.ValidationMessageFor(m => m.LoginMod.UserName)
</div>
</div>
<div class="clear"></div>
<div>
<div class="pwtb">
@Html.LabelFor(m => m.LoginMod.Password)
</div>
<div class="pwtb">
@Html.PasswordFor(m => m.LoginMod.Password, new { style = "width:150px" })
@Html.ValidationMessageFor(m => m.LoginMod.Password)
</div>
</div>
<div class="clear"></div>
<div class="rememberme">
@Html.CheckBoxFor(m => m.LoginMod.RememberMe)
@Html.LabelFor(m => m.LoginMod.RememberMe, new { @class = "checkbox" })
</div>
<div><input class="loginbutton" type="submit" value="Log In" /></div>
}
我引用这个模型:
namespace memsite.Models
{
public class MemEvent
{
public LoginModel LoginMod { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
我想打到这个账号控制器登录动作,但它从来没有击中控制器,它只是重新定向到/AccountController/Login
这不存在。此外,验证控件不工作...
namespace memsite.Controllers
{
[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
//
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
(我是全新的,以MVC不舍web表单土地永远。)
由于检测任何与控制器的结局。我现在打高尔夫球,但稍后会测试并接受答案 – nerdperson