none
Recalcular factura al cambiar datos. RRS feed

  • Pregunta

  • Hola:

    Tengo hecho un modulo donde con los datos introducidos calcula los totales de la factura, pero el problema es que cuando se cambia algún dato en algún campo donde se introducen los datos, va al servidor y vuelve a recargar la página con los datos calculados. Lo que veo es que es un proceso lento y tedioso ya que acude continuamente al servidor, recargando la página continuamente.

    Otro opción sería en ponerlo en un javascript, pero el problema que veo, es que tengo que tener el metodo de calculo de la factura en dos archivos, uno de c# y otro de javascript, teneien que ir actualizando cada vez que se cambia algo en los dos sitios.

    Y no se si se podrodría hacer mediente ajax, para que no se recargase tantas veces la página, pero este sería una mezcla de c# que es donde se harían los cálculos y otra de javascript para poner cada valor en su campo correspondiente.

    Si alguien me puede indicar, cual es la mejor forma de procesar la factura, le estaría gradecido.

    Un saludo.

    lunes, 19 de abril de 2021 21:37

Respuestas

  • En mi opinión, la solución idónea es la última, es decir, definir un método en el servidor que haga todos los cálculos, y llamar a ese método cuando sea necesario tanto desde C# como desde javascript utilizando AJAX.

    Para esta última llamada vía AJAX necestarás escribir código javascript que traslade los datos a la ubicación correcta. Si no quieres trabajar mucho, y no te importa que el tráfico de red sea un poco mayor de lo estrictamente necesario, puedes implementar esto con una vista parcial, con lo que recibirás todo el contenido ya formateado en html para solo introducirlo en la página. Incluso podrías usar el correspondiente extensor Ajax en Razor para hacer esto último automáticamente, en cuyo caso no necesitarías ningún javascript.

    • Marcado como respuesta elturle martes, 20 de abril de 2021 18:07
    martes, 20 de abril de 2021 15:17
  • ¿A que te refierese con extensor Ajax en Razor?

    Me refiero al @Ajax.ActionLink y @Ajax.BeginForm.

    Enlace a la documentación.

    EDITADO: Solo los he usado en ASP.NET MVC clásico. Espero que no los hayan suprimido en Core.
    martes, 20 de abril de 2021 17:24

Todas las respuestas

  • En mi opinión, la solución idónea es la última, es decir, definir un método en el servidor que haga todos los cálculos, y llamar a ese método cuando sea necesario tanto desde C# como desde javascript utilizando AJAX.

    Para esta última llamada vía AJAX necestarás escribir código javascript que traslade los datos a la ubicación correcta. Si no quieres trabajar mucho, y no te importa que el tráfico de red sea un poco mayor de lo estrictamente necesario, puedes implementar esto con una vista parcial, con lo que recibirás todo el contenido ya formateado en html para solo introducirlo en la página. Incluso podrías usar el correspondiente extensor Ajax en Razor para hacer esto último automáticamente, en cuyo caso no necesitarías ningún javascript.

    • Marcado como respuesta elturle martes, 20 de abril de 2021 18:07
    martes, 20 de abril de 2021 15:17
  • Hola

    Muchas Gracias por tu respuesta.

    ¿A que te refierese con extensor Ajax en Razor? ¿Donde puedo encontrar información sobre esto?

    Un saludo.

    martes, 20 de abril de 2021 15:28
  • ¿A que te refierese con extensor Ajax en Razor?

    Me refiero al @Ajax.ActionLink y @Ajax.BeginForm.

    Enlace a la documentación.

    EDITADO: Solo los he usado en ASP.NET MVC clásico. Espero que no los hayan suprimido en Core.
    martes, 20 de abril de 2021 17:24
  • Muchas Gracias.
    martes, 20 de abril de 2021 18:08