对ASP.NET MVC中的相同Controller Action执行GET和POST

时间:2010-07-12 20:29:22

标签: asp.net-mvc asp.net-mvc-2

我想让一个动作同时响应获取和帖子。我尝试了以下

[HttpGet]
[HttpPost]
public ActionResult SignIn()

这似乎不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:126)

使用AcceptVerbs属性可以实现。它更冗长,但更灵活。

[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
public ActionResult SignIn()
{
}

更多关于msdn

答案 1 :(得分:62)

默认情况下,操作会响应GET和POST,因此您无需指定任何内容:

public ActionResult SignIn()
{
    //how'd we get here?
    string method = HttpContext.Request.HttpMethod;
    return View();
}

根据您的需要,您可以通过操作HttpContext.Request.HttpMethod值来执行不同的逻辑,具体取决于HttpMethod。

答案 2 :(得分:0)

[HttpGet]
public ActionResult SignIn()
{
}

[HttpPost]
public ActionResult SignIn(FormCollection form)
{
}