是否可以将GET和POST AcceptVerbs用于ASP.NET MVC中的相同Controller Action?

时间:2014-04-07 11:36:16

标签: asp.net-mvc

如下面的示例代码。

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] public ActionResult Login()

{

}

1 个答案:

答案 0 :(得分:3)

  
    

是否可以将GET和POST AcceptVerbs用于ASP.NET MVC中的相同Controller Action?

  

不,但是如果您删除了在您的操作上修饰的GET和POST属性,那么对于每个帖子和获取请求,都会调用相同的操作。

如果您创建New Project > ASP.NET MVC 2/3/4 Web Application > Internet Application

如果您打开AccountController并检查,您会在下面找到:

    //
    // GET: /Account/Login

    [AllowAnonymous]
    public ActionResult Login(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return View();
    }

    //
    // POST: /Account/Login

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Login(LoginModel model, string returnUrl)
    {
        if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
        {
            return RedirectToLocal(returnUrl);
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
    }

这个模板本身告诉你需要有一个单独的方法,一个用于“POST”,另一个用于“GET”。