[asp.net-mvc] ASP.NET MVC에서 동일한 컨트롤러 작업에 대한 GET 및 POST

한 번의 작업으로 Get과 Post에 모두 응답하고 싶습니다. 나는 다음을 시도했다

[HttpGet]
[HttpPost]
public ActionResult SignIn()

작동하지 않는 것 같습니다. 어떤 제안?



답변

AcceptVerbs 속성을 사용하면 가능합니다. 좀 더 장황하지만 더 유연합니다.

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

msdn에 대해 자세히 알아보십시오 .


답변

작업은 기본적으로 GET과 POST 모두에 응답하므로 아무것도 지정할 필요가 없습니다.

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

필요에 따라 HttpContext.Request.HttpMethod 값을 조작하여 HttpMethod에 따라 다른 논리를 수행 할 수 있습니다.


답변

[HttpGet]
public ActionResult SignIn()
{
}

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


답변