Pregunta

Al ver que nuestro equipo mantiene una Intranet que tiene usuarios de clientes con la garantía de tener habilitado JavaScript, sabemos que podemos intervenir y comenzar a utilizar jQuery más " a fondo " ;. Nuestro sistema es muy grande, por lo que a pesar de que usamos áreas en nuestra aplicación ASP.NET MVC, la cantidad de páginas para agregar, editar, eliminar y ver conjuntos de datos por subsistema de un área es realmente bastante grande. Un subsistema de un área puede tener aproximadamente veinte tablas de datos. Si hay veinte tablas de datos, y tiene páginas individuales para agregar, editar, eliminar y ver, eso significa que hay un total de 60 páginas. Ahora imagine que hay veinte subsistemas por área, entonces una sola área tendría 20 * 60 páginas, y tenemos aproximadamente 15 áreas en nuestra Intranet. Lo entiendes, es enorme.

Pasando a mi punto real, quiero reducir esto utilizando las capacidades de jQuery de tener una tabla de datos en una página, presionando " eliminar " y me da un diálogo de eliminación con un botón de confirmación que luego enviará el formulario, redirigirá a la acción correcta y hará el trabajo por mí. Ahora necesito orientación en las siguientes áreas:

  1. Si quisiera eliminar sin volver a publicar utilizando ASP.NET MVC, ¿cuál es el proceso para hacerlo? Esto incluye hacer clic en eliminar, salir y comprobar que es capaz de eliminar (las relaciones FK deben tratarse de la manera correcta), luego, si es posible, eliminarlas y eliminar la fila de la tabla en la vista, todo sin actualizar la página.
  2. ¿Cómo invoco la acción de eliminación desde un proceso asíncrono usando jQuery? ¿Es sabio hacerlo? Usualmente usamos Html.ActionLink . ¿Tendría que envolverlo en un formulario?
  3. Lo mismo ocurre con la edición y actualización, una vez más, ¿cuál es la mejor manera de hacer esto?

Estoy buscando una solución elegante y algo que no sea difícil de aplicar para cada página para la que tengo que hacer esto. Cualquier entrada sería muy apreciada.

¿Fue útil?

Solución

Estoy trabajando en un proyecto que utiliza enlaces para desencadenar acciones de eliminación a través de AJAX POST (sin devolución).

$("a.deleteLink").click(function(event)
{
    event.preventDefault();
    if (confirm("Are you sure you want to delete this section?"))
    {
        //TODO Display processing indicator

        var myId = /* id of element */ ;

        $.post("/Section/Delete", { id: myId }, function(data)
        {
            if (data == "Success")
            {
                //handle success
                //TODO Fade out element using .fadeOut()
            }
            else
            {
                //handle error
            }
        });
    }
});

El método del controlador está simplemente en /Controllers/SectionController.cs. Solo acepta POST como cualquier acción que cambie la base de datos.

    private SectionRepository secRepo = new SectionRepository();

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(long id)
    {
        Section sec = secRepo.GetById(id);

        secRepo.Delete(sec);
        secRepo.Save();

        return Content("Success");
    }

Otros consejos

Acabo de ver un video en algunas plantillas que puedes obtener para ASP.NET MVC con Subsonic. Si bien aún no lo he implementado o ni siquiera lo he probado, ¡parece increíble! Echa un vistazo a aquí .


No estoy seguro de si esta es una opción viable para usted o no, pero recientemente tuvimos una necesidad similar a la suya y lanzamos nuestra aplicación principal como una aplicación ASP.NET MVC (usando jQgrid ) y luego una aplicación secundaria de formularios web ASP.NET para nuestras funciones de administrador usando datos dinámicos. Esto ha funcionado extremadamente bien y nos ha ahorrado un montón de tiempo.

También se parece a DynamicData y MVC se reunirán en algunos de los próximos lanzamientos.

Otras lecturas ...
* David Hayden
* rbqsoft
* Wiki de Sharp Architecture

Chad Myers tiene un buen artículo sobre esto.

También one de Dino Esposito.

Si también quieres lanzar el diálogo jQuery a la fiesta, este Ricardo Covo publica hace un buen trabajo

ingrese la descripción de la imagen aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top