GET и POST для одного и того же действия контроллера в ASP.NET MVC - PullRequest
84 голосов
/ 13 июля 2010

Я бы хотел, чтобы одно действие отвечало как на Gets, так и на Posts.Я попробовал следующее

[HttpGet]
[HttpPost]
public ActionResult SignIn()

Это не сработало.Есть предложения?

Ответы [ 3 ]

127 голосов
/ 18 сентября 2010

Это возможно с помощью атрибута AcceptVerbs.Это немного более многословно, но более гибко.

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

Подробнее о msdn .

63 голосов
/ 13 июля 2010

Действия реагируют как на GET, так и на POST по умолчанию, поэтому вам не нужно ничего указывать:

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

В зависимости от ваших потребностей, вы все равно можете выполнять другую логику в зависимости от метода HttpMethod, работая со значением HttpContext.Request.HttpMethod.

1 голос
/ 13 июля 2010
[HttpGet]
public ActionResult SignIn()
{
}

[HttpPost]
public ActionResult SignIn(FormCollection form)
{
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...