none
Crear HTML dinámicamente luego de ejecutar acción (MVC) RRS feed

  • Pregunta

  • Hola, les escribo porque tengo un problema...
    Tengo una aplicación web en MVC, y en mi formulario hay una sección la cual tengo un textbox y un add, entonces al clickear en add, se agrega a una lista en el controlador el valor del textbox y éste lo agrega a una lista que luego queda en session. Pero el tema es que necesito dibujar en html una label con ese valor al momento de agregarlo...
    Pensé en  hacerlo con javascript, es decir, hago que el add lleve a una función que haga un $.post el cual me guarde el valor en session, y luego del post, que dibuje algo asi:
    $.post('/Connection/AddComunicationObject', { areaCode: other_ac, rowCount: rowCnt, countryCode: other_cc, extension: other_extension, idComunicationModeType: comunicationTypeId, comunicationValue: other_number, sms: sms }, function() {
                                html += "<tr id='comm_" + rowCnt + "'>";
                                html += "   <td valign='bottom' colspan='5'>";
                                html += "       <a herf='" + other_number + "' style='color:#0997E1; font-family:Arial; font-size:9pt;'>" + other_number + "</a>";
                                html += "   </td>";
                                html += "   <td valign='bottom'>";
                                html += "       <label onclick='removeCom(" + rowCnt + ");' style='color:Red; cursor:pointer;  font-weight:bolder; font-size:10pt;'>Remove</label>";
                                html += "   </td>";
                                html += "</tr>";
                                $("#comTypesValues").html(html);
                                $("#other_text").val("");
                            });
    y ésto me estaría dibujando cada vez que agrego un valor.
    Pero he aquí el problema, si le doy a refresh en el explorador, la tabla (comTypesValues en éste caso) estará vacía y no me mostrará los valores que tengo en la sessión mientras que la sessión si los tendrá.
    Pensé en hacer ésto mismo, pero con mvc, es decir un actionLink que me ejecute el método AddComunicationObject y que luego me dibuje las cosas pero iterando sobre los elementos de la sessión. El tema es que no se como imitar en MVC la función callback del método $.post y menos como hacer para que lo dibujado se vea automáticamente en el HTML de la página es decir que se actualice.

    Espero me hayan entendido y espero su ayuda, muchas gracias!!!
    miércoles, 14 de octubre de 2009 19:16

Todas las respuestas

  • Hola Gonzalo,

    ¿Al final resolviste tu problema?

    En realidad se me ocurren dos maneras de realizar lo que estás comentando, si no lo entendí mal.
    Por un lado puedes almacenar en ViewData el valor que acabas de agregar en tu lista una vez que se ha completado la insercción y, por otro lado, podrías utilizar ajax para enviar el valor al controlador y mostrar la label con el mismo una vez que se ha completado con exito la llamada asíncrona (Te puedes beneficiar de JQuery) en este segundo caso.

    ¡Saludos!
    jueves, 19 de noviembre de 2009 20:08