在新创建的 MVC4 应用程序中,将此函数插入帐户 Controller
[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>
但是当我单击该注册链接时,我看到 404 错误,指出
/Account/AdminLogin
未找到。
我在插入那个小mvc的过程中错过了一些东西;你可以帮帮我吗 ?我是一个mvc初学者。
最佳答案
单击浏览器中的链接会产生 GET 请求,但您的操作方法仅适用于 POST 请求。
添加 [HttpGet]
属性或删除 [HttpPost]
属性来解决此特定问题。
一般来说,您在提交数据时会希望继续使用 POST 请求。因此,我的建议是更改客户端以使用表单(或使用客户端逻辑拦截链接单击操作并使用 ajax 请求提交数据)。
关于c# - 为什么我会收到此 404 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666122/