2009-07-26 4 views
7

ASP.NET의 ActionLink가 작동하는 방식을 정확히 이해하지 못합니다. OnSuccess 및 OnFailure에 대한 이벤트 처리기가 있지만 성공과 실패가 어떻게 결정되는지는 알 수 없습니다.ASP.NET MVC ActionLink에 대해 OnSuccess가 어떻게 측정됩니까?

ASP.NET MVC 응용 프로그램을 만들고 있는데 AJAX를 사용하는 항목에 "투표"할 수있는 Ajax.ActionLink가 있습니다 ... Digg와 비슷합니다. Actionlink가 내 컨트롤러와 메소드를 시작합니다. 모든 것이 여기에서 잘 작동합니다.

내 컨트롤러에이 사용자가 전에 투표했는지 확인하는 논리가 있습니다. 나는 "OnSuccess"와 "OnFailure"를 사용하여 다르게 대응하고자했습니다. 사용자가 투표하지 않은 경우 (내 OnSuccess 시나리오) 자바 스크립트 함수 "PlusOneVote"를 실행하고 사용자가 "CheaterYouCantVoteTwice"자바 스크립트 함수를 실행하기 전에 투표를 원한다면 실행하고 싶습니다.

OnFailure 및 OnSuccess가 어떻게 측정되는지 설명 할 수 있습니까?

누군가이 논리를 어떻게 만들 수 있는지 설명 할 수 있습니까? 사용자가 이미 투표 한 적이없는 경우 (내 경우에는 투표하지 않은 경우) 하나의 분기에서 하나의 Javascript 함수를 실행할 수 있고 다른 사용자는 이미 Javascript 함수를 실행할 수 있습니다 투표 했니?

답변

5

성공 여부는 Ajax 응답의 HTTP 상태 코드를 기반으로 측정됩니다. 기본적으로 400 레벨 코드 (400 - 417 중 하나)를 얻으면 실패 할 것입니다. 당신이 200을 얻는다면 그것은 성공으로 간주됩니다.

하나의 실패 메시지와 하나의 성공 메시지를 고려하는 대신 OnSuccess 처리기의 데이터 내용을 검토하여 수행 할 작업을 결정해야합니다. Ajax 관점에서 유효한 응답이 반환되면 성공한 것입니다.

관련 문제