Convertir Ajax.BeginForm en jquery.unobtrusive-ajax no working

Estoy tratando de migrar un ASP. Aplicación web NET MVC a . NET Core, y estoy luchando con la conversión apropiada del Ajax. BeginForm helper (que ya no existe en .NET Core).

He creado dos aplicaciones idénticas, una en ASP. NET MVC o .NET Core. El ASP. NET funciona como se esperaba. El .NET El núcleo uno vuelve a cargar toda la página, y la reemplaza con la vista parcial, en lugar de reemplazar sólo el elemento div.

Aquí está el fragmento de código (las líneas comentadas son el ASP. Versión NET)


  • Tenga en cuenta que reloadContent() es sólo una función vacía.

UPDATE:

Después de comparar el HTML producido de ambos proyectos, me di cuenta de que la etiqueta wa data-ajax="true" desapareció. Lo añadí y todo funcionó como debía.

Pregunta hecha hace 3 años, 4 meses, 28 días - Por codervoyager


3 Respuestas:

  • Puedes usar este pequeño biblioteca para migrar en el núcleo neto. El uso es muy similar a Ajax. BeginForm y requieren algunos cambios. Chequea también mi respuesta Aquí.

    Respondida el Dec 17, 2020 a las 19:11 - por codecraftsman

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando al migrar de ASP.NET MVC a ASP.NET Core podría estar relacionado con el manejo de AJAX y la librería jQuery Unobtrusive AJAX. En ASP.NET Core, es necesario configurar explícitamente el script de jQuery Unobtrusive AJAX para que funcione correctamente.

    Aquí te dejo los pasos que puedes seguir para convertir tu código a utilizar jQuery Unobtrusive AJAX en ASP.NET Core:

    • Asegúrate de que has agregado la librería jQuery Unobtrusive AJAX en tu proyecto. Puedes hacerlo instalando el paquete NuGet `Microsoft.jQuery.Unobtrusive.Ajax`.
    • En tu vista, modifica tu formulario para incluir los atributos de datos necesarios para el funcionamiento de jQuery Unobtrusive AJAX. Por ejemplo, podrías tener algo así:
    html
    
    • Asegúrate de tener referenciados los scripts de jQuery y jQuery Unobtrusive AJAX en tu vista o en tu layout:
    html
    
    
    
    • Agrega un script adicional en tu vista o layout para inicializar jQuery Unobtrusive AJAX y realizar la configuración necesaria:
    html
    
    

    Con estos pasos, deberías poder reemplazar el uso del helper Ajax.BeginForm con jQuery Unobtrusive AJAX en tu aplicación ASP.NET Core. Recuerda que es importante asegurarte de tener todas las referencias y configuraciones correctas para que funcione adecuadamente.

    Respondida el Dec 18, 2020 a las 19:10 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    Intentas convertir un Ajax.BeginForm de ASP.NET MVC a jQuery Unobtrusive AJAX en ASP.NET Core, pero la página se vuelve a cargar en lugar de actualizar solo un elemento div.

    Solución:

    Después de comparar el HTML generado por ambas aplicaciones, has notado que falta el atributo data-ajax="true" en la etiqueta form. Agregar este atributo debería resolver el problema.

    Código corregido:

    html
    
    

    Esta solución agrega el atributo data-ajax="true" al formulario, lo que le indica a jQuery Unobtrusive AJAX que maneje la solicitud AJAX.

    Respondida el Dec 18, 2020 a las 19:21 - por Gemini

    Votos positivos: 0 | Votos negativos: 0