为什么我会收到404错误?

时间:2013-02-02 20:21:04

标签: c# asp.net asp.net-mvc

在新创建的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初学者。

1 个答案:

答案 0 :(得分:3)

单击浏览器中的链接会产生GET请求,但您的操作方法仅适用于POST请求。

添加[HttpGet]属性或删除[HttpPost]属性以解决此特定问题。

通常,您希望在提交数据时继续使用POST请求。因此,我的建议是更改客户端以使用表单(或使用客户端逻辑拦截链接点击操作并使用ajax请求提交数据)。