2

新しく作成された 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>

しかし、その登録リンクをクリックすると、 /Account/AdminLogin見つからないことを示す 404 エラーが表示されます。

その小さなmvcを挿入する途中で何かが恋しいです。私たちを手伝ってくれますか ?mvc初心者です。

4

1 に答える 1

3

ブラウザーでリンクをクリックすると GET 要求が発生しますが、アクション メソッドは POST 要求でのみ使用できます。

この特定の問題を解決するには、属性を追加する[HttpGet]か、属性を削除してください。[HttpPost]

一般に、データを送信するときは POST リクエストを使用し続ける必要があります。そのため、クライアント側でフォームを使用するように変更することをお勧めします (または、クライアント側のロジックを使用してリンク クリック アクションをインターセプトし、ajax 要求を使用してデータを送信します)。

于 2013-02-02T20:28:56.047 に答える