none
Cambiar el valor de una variable de razor RRS feed

  • Pregunta

  • Buenas tardes.

    Tengo un problema, quiero hacer un paginador con ayuda de razor,

    Mis variables las asigno de la siguiente manera

    @{
                    int i = 0;
                    List<Abono> ab = Model.ToList();
                    int inicio = Convert.ToInt32(Request["inic"]);
                    int fin = Convert.ToInt32(Request["ffin"]);
                    var xx = ab.Skip(inicio).Take(fin);
    
                }

    quiero asignar un valor por defecto al cargar la pagina, digamos inicio = 0

    var inic=0;
        var ffin=20;


    Y cambiar el valor con json

    function siguiente() {
            //debugger;
            var ini = @Html.Raw(Json.Encode(@ViewBag.inicio));
            var fi=@Html.Raw(Json.Encode(@ViewBag.fin));
            $.post("/Reportes/GetSiguiente", { Fin: fi },
                    function (data) {
                        var dato = data.dias;
                        //alert(dato);
                        debugger;
                        var inic=dato[0];
                        var ffin=dato[1];
                        
                    });
            
        }

    Si me pueden ayudar solo con el valor por defecto estare muy agradecido.

    Saludos

    viernes, 5 de diciembre de 2014 19:21

Todas las respuestas

  • Directamente tal y como lo pregunta no es posible porque el código de Razor es código que corre en el servidor, mientras que el código Javascript que muestra es código que corre en el explorador de quien visita su página web.

    Si usted necesita comunicarle algo al Action method de un controlador, simplemente páselo como información en el POST.  Luego el controlador recibe los datos, los pasa en ViewBag o algo similar a la vista y la vista tendría código para examinar si los valores vienen o no en el ViewBag, y si sí vienen los usa.

    ¿Necesita más ayuda al respecto?  Simplemente me lo hace saber.


    Jose R. MCP
    Code Samples

    viernes, 5 de diciembre de 2014 19:51
  • hola

    recuerda que del lado del servidor las variables no mantienen estado, por lo que defini una variable para mentener esta informacion no sirve de nada porque perderas esa informacion

    si podrias definir un hidden en la view y pasar el valor en cada post que realices

    podrias definir

    @Html.Hidden(m=> m.paginaActual)

    entonces usarias jquery para tomar ese dato y enviarlo

    var paginaactual = $("#paginaActual").val();

    eso se lo envias en el $.post()

    con las variables inicio y fin hace lo mismo

    -----

    ademas recuerda que en el controller tambien puede definir informacion

    public class XXController {
    
        private int inicio = 0;
    
        [Httppost]
        public ActionResult GetSiguiente(int paginaActual){
      
           //codigo
    
        }
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 5 de diciembre de 2014 20:04