728x90
.NET MVC Controller 에서 아래와 같이 HttpGet, HttpPost Attribute를 동시에 사용할 경우 조심해야 한다.
[HttpGet]
[HttpPost]
public ActionResult SomeController()
{
return View();
}
이 경우 GET, POST request 모두에 대해서 404 에러가 발생한다.
이를 방지하기 위해 아래와 같이 사용해야 한다.
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult SomeController()
{
return View();
}
어떤 착한 아저씨가 test case를 정리해주셨다.
| Method | URL | Response |
|-------- |---------------------- |---------------------------------------------------------------------------------------- |
| GET | /ctrl/test/5 | { "input": 5, "when": "/Date(1408041216116)/", "req": "GET", "call": "Test" } |
| POST | /ctrl/test/5 | { "input": 5, "when": "/Date(1408041227561)/", "req": "POST", "call": "Test" } |
| PUT | /ctrl/test/5 | { "input": 5, "when": "/Date(1408041252646)/", "req": "PUT", "call": "Test" } |
| GET | /ctrl/testgetonly/5 | { "input": 5, "when": "/Date(1408041335907)/", "req": "GET", "call": "TestGetOnly" } |
| POST | /ctrl/testgetonly/5 | 404 |
| PUT | /ctrl/testgetonly/5 | 404 |
| GET | /ctrl/TestPostOnly/5 | 404 |
| POST | /ctrl/TestPostOnly/5 | { "input": 5, "when": "/Date(1408041464096)/", "req": "POST", "call": "TestPostOnly" } |
| PUT | /ctrl/TestPostOnly/5 | 404 |
| GET | /ctrl/TestBoth/5 | 404 |
| POST | /ctrl/TestBoth/5 | 404 |
| PUT | /ctrl/TestBoth/5 | 404 |
| GET | /ctrl/TestVerbs/5 | { "input": 5, "when": "/Date(1408041709606)/", "req": "GET", "call": "TestVerbs" } |
| POST | /ctrl/TestVerbs/5 | { "input": 5, "when": "/Date(1408041831549)/", "req": "POST", "call": "TestVerbs" } |
| PUT | /ctrl/TestVerbs/5 | 404
- 참고 링크
https://stackoverflow.com/a/25315651/19392359
728x90
'Programming > .NET' 카테고리의 다른 글
[.NET Core] Razor 파일 코드 변동사항 바로 적용되도록 설정하기 (0) | 2022.10.26 |
---|---|
[.NET Core] wwwroot 폴더 밖에 있는 file download (0) | 2022.10.19 |
[Azure] Azure Storage - Blob Storage (0) | 2022.04.15 |
[.NET] FormData를 이용한 file upload (0) | 2022.03.19 |
[.NET] Dapper 사용시 주의점 (0) | 2021.09.24 |
댓글