在同一个Controller中使用Get和Post

时间:2014-02-12 19:39:26

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

我想将HttpGet和HttpPost属性用于一个动作方法。但是,我只看到了在单独的操作方法中单独使用属性的示例。

例如:

public ActionResult Index()
    {
        //Code...
        return View();
    }

    [HttpPost]
    public ActionResult Index(FormCollection form)
    {
        //Code...
        return View();
    }

我希望有这样的东西:

[HttpGet][HttpPost]
public ActionResult Index(FormCollection form)
{
    //Code...
    return View();
}

我记得曾经在某个地方看到这件事,但不记得在哪里。

1 个答案:

答案 0 :(得分:3)

如果您真的想这样做,可以使用[AcceptVerbs]属性。 (见this SO question

这样你的方法可以处理GET和POST动词(但不能处理像PUT这样的其他动词)

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Index(FormCollection form)
{
    //Code...
    return View();
}

如果您希望您的方法处理所有动词,请不要使用任何属性:

public ActionResult Index(FormCollection form)
{
    //Code...
    return View();
}