2009-07-26 17 views
7

No entiendo exactamente cómo funcionan los ActionLinks de ASP.NET. Veo que tienen un controlador de eventos para OnSuccess y OnFailure, pero no puedo encontrar nada que describa cómo se determina el éxito y el fracaso.¿Cómo se mide OnSuccess para ASP.NET MVC ActionLink?

Estoy construyendo una aplicación ASP.NET MVC y dentro de ella tengo un Ajax.ActionLink que me permite "votar" en elementos usando AJAX ... similar a Digg. El Actionlink inicia mi controlador y método ... todo funciona bien aquí.

En mi controlador tengo la lógica que verifica si este usuario ha votado antes. Quería usar "OnSuccess" y "OnFailure" para responder de manera diferente. Quiero que ejecute mi función de Javascript "PlusOneVote" si el usuario nunca ha votado (este es el escenario OnSuccess) y si el usuario ha votado antes quiero ejecutar mi función de javascript "CheaterYouCantVoteTwice".

¿Alguien puede explicar cómo se miden OnFailure y OnSuccess?

¿Puede alguien explicar cómo puedo construir esta lógica ... donde puedo ejecutar una función de Javascript en una rama (en mi caso, si el usuario nunca ha votado) y otra función de Javascript en el caso de que el usuario ya votado?

Respuesta

5

El éxito se mide en función del código de estado HTTP de la respuesta ajax, y nada más. Básicamente, si obtienes un código de nivel 400 (cualquiera de 400 - 417), obtendrás un error. Si obtienes un 200, se considera un éxito.

Creo que tendrá que examinar el contenido de los datos en su controlador OnSuccess para determinar qué hacer, en lugar de considerar un mensaje de error tipo y un mensaje de éxito. Desde la perspectiva de Ajax, fue exitoso si se devolvió una respuesta válida.

Cuestiones relacionadas