Подтвердить что ты не робот

GET и POST для одного и того же действия контроллера в ASP.NET MVC

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

[HttpGet]
[HttpPost]
public ActionResult SignIn()

Это не сработало. Любые предложения?

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

[HttpGet]
public ActionResult SignIn()
{
}

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