c# - 为什么我会收到此 404 错误?

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

在新创建的 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/

相关文章:

c# - 自动更正文本输入中的拼写错误

c# - 如何在 MVC 中使用 Windows 身份验证,但使用较新的身份数据库表进行角色存储?

c# - 使用 ELMAH 发送每日摘要电子邮件

c# - 在 ServerControl (ASP.NET) 的 <Head .../> 标记内添加 <Script .../> 标记?

c# - NullReferenceException 与 Ckeditor 5 和 ASP.NET MVC 包错误?

c# - 将 javascript 数组传递给 c# 方法

c# - Crm 2011 实体集合查询和性能问题

javascript - 在MVC中打开一个新的窗口表单操作方法

c# - 在 ASP .NET MVC 5 中清除 session ?

c# - 当迭代次数未知时创建嵌套 for 循环