none
Exceptiones Con ajax RRS feed

  • Pregunta

  • Tengo estos controladores

                               

     [HttpPost]
            public ActionResult RegistrarPlato(string nombre)
            {
                var rp = Factory.Crear<Plato>();
                var gestionPlato = new GestionPlato(rp, new BuscadorPlato(rp));
                try
                {
                    gestionPlato.AddPlato(new Plato { Nombre = nombre});
                }
                catch (NotMoreFourPlateException ex)
                {
                    ViewBag.Message = ex.Message;
                }
                catch
                { 

                }
                return View();
            }
            public ActionResult ObtenerPlatos()
            {
                var rp = Factory.Crear<Plato>();
                List<Plato> platos = null;
                try
                {
                    platos = new BuscadorPlato(rp).PlatosOfDate(DateTime.Now);
                }
                catch (Exception)
                {

                }
                return new JsonResult { Data = platos, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }
        }

    hago peticiones ajax.

                

     $('button[type=submit]').on('click', function (e) {
                e.preventDefault();

                var load = $('#Load');

                load.show();

                $.ajax({
                    url:'@Url.Action("RegistrarPlato","Menu")',
                    type: 'post',
                    data:  $('form').serialize(),
                    success: function () {

                        $.getJSON('@Url.Action("ObtenerPlatos", "Menu")', {}, function (data) {
                            $('input[type=Text]').val('')
                            $('#tabla td').remove();
                            $.each(data, function (index, value) {
                                $('#tabla').append('<tr><td>' + value.NumeroPlato + '</td><td>' + value.Nombre + '</td><td></td></tr>');
                            })
                        })
                    },
                    complete: function(){
                        load.hide();
                    },
                    error: function () {
                        error.show();
                        error.text('Lo sentimos, estamos experimentando algunos problemas. Por favor intente mas tarde')
                    }
                });
            })

    Lo que quiero sabes es como capturar las excepciones (las personalizadas o de sistemas como las del ef) desde javascript, dado que la fucncion Error ahora no me funciona. No se si fue bastante claro 

    martes, 21 de abril de 2015 12:51

Respuestas

Todas las respuestas

  • hola

    >>Lo que quiero sabes es como capturar las excepciones (las personalizadas o de sistemas como las del ef) desde javascript, dado que la fucncion Error ahora no me funciona.

    para los errores desde $.ajax veo que defines la seccion del error:function() solo que le falta los parametros

    error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
          }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de abril de 2015 15:32
  • Gracias por tu respuesta pero ese metodo no me maneja las excepciones ej.

    [HttpPost]
            public ActionResult RegistrarPlato(string nombre)
            {
                var rp = Factory.Crear<Plato>();
                var gestionPlato = new GestionPlato(rp, new BuscadorPlato(rp));
                try
                {
                    gestionPlato.AddPlato(new Plato { Nombre = nombre});
                }
                catch (NotMoreFourPlateException ex)
                {
                    ViewBag.Message = ex.Message;
                }
                catch
                { 

                }
                return View();
            }

    lo que quiero es una manera de que si lanzo la exception NotMoreFourPlateException ,  pueda lanzar otro tipo de exception que si la pueda capturar aqui

     error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
          }

    o alguna manera de enviar un error cuando quiera y que lo pueda capturar en:

     error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
          }


    martes, 21 de abril de 2015 17:53
  • hola

    podrias evaluar algo como esto

    ASP.NET MVC Ajax Error handling

    como veras necesitas definir un atributo que cambien la respeusta del Exception

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 21 de abril de 2015 19:32
  • Creo que me servirá, pruebo y te dejo saber. Gracias  
    jueves, 23 de abril de 2015 11:54