none
ASP.NET MVC - Desde Ajax o JQuery (o ambos) llamar a una action cada X segundos. RRS feed

  • Debate general

  • Como dice el titulo, basicamente lo que necesito es lo siguiente:

    > En una vista poner codigo js, jquery o ajax, y que cada X segundos llame a una accion del controller, este controller retorna un bool, en caso de el bool ser false me muestrre un  popup y me redireccione a otra vista, como logro hacer eso?

    Gracias de antemano.


    Roy Sillerico

    jueves, 29 de diciembre de 2016 14:46

Todas las respuestas

  • hola

    Podrias usar el timer de javascript

    JavaScript Timing Events

    despues simplemente seria hacer uso de $.ajax

    ASP.Net MVC: jQuery AJAX and JSON Example

     Posting Data With jQuery AJAX In ASP.NET Razor Web Pages

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 29 de diciembre de 2016 14:57
  • Gracias Leando Me sirvio de mucho tus comentarios, dejo el código de como lo resolvi:

    Action que valida la sesion:

        [HttpPost]
        public JsonResult Espera(string usuario)
        {
            Exito obj = new Exito();
            if (Session["usuario"] == null)
                obj.resul = false; 
            else
                obj.resul = true;
    
            return Json(obj);
        }

    Código cliente (Vista)

    @model XXX.Models.Exito
    
    @{
    ViewBag.Title = "Espera";
    }
    
    <script src="/Scripts/jquery-1.10.2.js"></script>
    <script src="/Scripts/bootstrap.js"></script>
    <script src="/Scripts/respond.js"></script>
    <script src="/Scripts/jquery.validate.js"></script>
    <script src="/Scripts/jquery.validate.unobtrusive.js"></script>
    
    <h3>Espera...</h3>
    
    <h2>Aqui nos mantenemos a la espera que caduque la SESSION</h2>
    
    <h1>Usuario: @Session["usuario"]</h1>
    
    <script>
    $(document).ready(function () {
        function myFunction() {
            $.ajax({
                type: "POST",
                url: "/XXX/Espera",
                data: '{usuario: "' + "" + '" }',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    if (response.resul == false) {
                        alert("Estimado Choco, su Session ya caduco.");
                        window.location = 'http://localhost:37728/XXX/Index';
                    }
                },
                failure: function (response) {
                    alert(response.responseText);
                },
                error: function (response) {
                    alert(response.responseText);
                }
            });
        }
    
        setInterval(myFunction, 10000);
    });
    </script>



    Roy Sillerico

    viernes, 30 de diciembre de 2016 14:04