Mi pregunta es cuál es la condición para llamar a la devolución de llamada OnFailure, cómo sabe el motor de ejecución que la llamada ajax ha fallado (el ajax helper usa un código de estado de respuesta http para indicar eso, ¿qué sería entonces?). Y si el html de UpdateTargetId se actualiza sin importar que la llamada ajax haya fallado o haya sido exitosa, entonces, ¿cómo debo manejar el error correctamente entonces? Muy confundido ...ASP.NET MVC3 AJAX.BeginForm AjaxOptions OnSuccess OnFailure Problema
13
A
Respuesta
18
<script type="text/javascript">
function OnSuccess() {
alert('Success');
}
function OnFailure(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert('Failure');
Here you can do whatever you want with the div.
$('#targetDiv').empty();
}
</script>
<div id="targetDiv">
@using (Ajax.BeginForm("Index", "Home",
new AjaxOptions
{
UpdateTargetId = "targetDiv",
OnSuccess ="OnSuccess",
OnFailure ="OnFailure"
})
{
...
}
</div>
0
onFailure en AjaxOptions busca una función de JavaScript
<script>
function onError(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert("Error occured. Status code = " + statusCode);
}
</script>
En HTML escribir esto para conseguir alerta cuando llegue el error.
<div id="updateDiv">
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "updateDiv", OnFailure = "onError" }))
{
@*Your HTML form code goes here.*@
}
</div>
3
De acuerdo con el sitio web oficial de MSDN: Esta función se llama si el estado de la respuesta no está en el rango de 200.
4
Parece que en ASP.NET MVC 4 cosas habían cambiado un poco. Tuve que usar las siguientes propiedades para leer la respuesta y el estado:
ajaxContext.responseJSON
ajaxContext.responseText
ajaxContext.status
ajaxContext.statusText
Cuestiones relacionadas
- 1. Cómo utilizar los métodos Ajax.BeginForm OnSuccess y OnFailure?
- 2. Ajax.BeginForm OnFailure invocado cuando ModelState es InValid
- 3. Ajax.BeginForm no llama onSuccess
- 4. Asp.NET MVC AjaxOptions OnSuccess se dispara ... ¿demasiado pronto?
- 5. MVC3 Ajax.BeginForm onSuccess no se ejecuta en Firefox
- 6. ASP.NET - Ajax.BeginForm OnSuccess devolver la llamada con los parámetros
- 7. función MVC Ajax.BeginForm onSuccess no define
- 8. AJAX.BeginForm PostURL está dañado
- 9. ASP.NET Ajax.BeginForm envía múltiples peticiones
- 10. ¿Cómo puedo pasar parámetros a la función OnSuccess de la clase AjaxOptions en ASP.NET MVC?
- 11. ASP.NET MVC3 Validación problema
- 12. ASP.NET MVC jQueryUI datepicker no funciona cuando se utiliza AJAX.BeginForm
- 13. MVC Ajax.Beginform OnComplete/OnSuccess activado antes de la llamada del controlador
- 14. ASP.NET MVC "Ajax.BeginForm" ejecuta OnSuccess aunque el modelo no es válido
- 15. ¿Por qué Ajax.BeginForm reemplaza toda mi página?
- 16. asp.net mvc Ajax.BeginForm
- 17. ASP.NET MVC3 Razor @string problema de puntos
- 18. ¿Cómo se mide OnSuccess para ASP.NET MVC ActionLink?
- 19. MVC3 Ajax.ActionLink
- 20. ASP.Net MVC 3.0 Ajax.BeginForm está redirigiendo a una página?
- 21. Ajax.BeginForm, acción de llamadas, devuelve JSON, ¿cómo puedo acceder al objeto JSON en mi función OnSuccess JS?
- 22. Loopj Android Async Http - onFailure no activado
- 23. Asp.Net MVC Ajax.BeginForm no está sometiendo a través de Ajax
- 24. ¿Por qué Ajax.BeginForm no funciona en Chrome?
- 25. Enlazando HttpPostedFileBase usando Ajax.BeginForm
- 26. ASP.NET MVC3 C# - foreach
- 27. ASP.NET MVC3 + ActionFilterAttribute + Injection?
- 28. asp.net mvc3 razor documentación?
- 29. ASP.NET MVC3 - formato DateTime
- 30. ASP.NET MVC3 Debugging Application_Start
Gracias, eso es útil, pero todavía quiero saber cómo sabe que la llamada falló ... ¿debería escribir algo en el controlador? ... – Rn2dy
Ya si el error es un error comercial, por ejemplo, Duplicate Name, debe enviar un código de error que será aceptado en OnSuccess(). Si el error escapa a su control, se detectará en OnError. –
@MangeshPimpalkar si el error está "fuera de su control" y tiene los customerrors activados en web.config, OnFailure nunca será llamado. – gangelo