在新创建的MVC4应用程序中,将此功能插入帐户控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AdminLogin(AdminLoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login("administrator", model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The password provided is incorrect.");
return View(model);
}
和这个
public class AdminLoginModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
放入accountModel.cs。我还创建了一个新文件AdminLogin.cshtml并将其留空。 在_loginPartial.cshtml文件中,我插入了一个操作链接
<li>@Html.ActionLink("Register", "AdminLogin", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
但是当我点击Register链接时,我会看到404错误说明
找不到/Account/AdminLogin
。
我想念插入那个小小的mvc的东西;你可以帮帮我吗 ?我是一名mvc初学者。
答案 0 :(得分:3)
单击浏览器中的链接会产生GET请求,但您的操作方法仅适用于POST请求。
添加[HttpGet]
属性或删除[HttpPost]
属性以解决此特定问题。
通常,您希望在提交数据时继续使用POST请求。因此,我的建议是更改客户端以使用表单(或使用客户端逻辑拦截链接点击操作并使用ajax请求提交数据)。