2014-01-08 4 views
5

상황의 빠른 요약 : 내 컨트롤러보다Ajax.ActionLink POST는 ASP.NET MVC에서 작동하지 않습니다 5

@{ 
ViewBag.Title = "Index"; 

AjaxOptions options = new AjaxOptions(); 
options.HttpMethod = "POST"; 
} 

... 

@Ajax.ActionLink("Linkname", "CreateChallenge", new { challengedId = Model.UserId },options); 

: 내보기에

나는 면도기 코드의 조각이 :

[Authorize] 
[HttpPost] 
    public string CreateChallenge(string challengedId) 
    { 
     ChallengeRepository.CreateChallenge(challengedId); 
     return "Sendend!"; 
    } 

내가 링크를 클릭했을 때 'Resource (리소스)를 찾을 수 없습니다'오류가 발생하지만 제거 할 때 [HttpPost] 모든 것이 잘 작동 때문이다. 하지만 POST 메서드가 필요합니다. 나는 주변을 둘러 보았고 비슷한 문제를 발견했지만 어느 솔루션도 나를 위해 일하지 않았다.

답변

7

UPDATE 스포크 너무 빨리, 당신이 이것을 설치하고 작동해야보기에서 참조하는 경우 사용자가 jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/ 패키지

이 필요하다는 것을 기억하고, 내가 내 OOTB 시험했다 :

Ajax.ActionLink를 사용하여 POST 요청을 발행 할 수없는 것으로 보입니다. AjaxOptions에서 POST를 설정 했더라도 GET을 수행합니다. 트래픽을 모니터링하기 위해 fiddlr을 사용하면이 사실을 알 수 있습니다.

Chrome의 Postman 확장 프로그램을 사용하여 테스트 할 수도 있습니다. POST를 수행 할 때 실제로 작동하는 것처럼 동작 방법이 실제로 작동하는지 확인할 수 있습니다. 하지만 실제로는 GET을 수행하기 때문에 404를 얻게됩니다.

저는 jQuery를 사용하여 게시물을 작성했습니다. 자세한 내용은 여기를 참조하십시오 http://api.jquery.com/jquery.ajax/

관련 문제