none
Ayuda con Showmodal de vista parcial y actualizacion de div RRS feed

  • Pregunta

  • Nuevamente recurro a ustedes amigos programadores para solicitar de su ayuda con el siguiente tema.

    1 Tengo un Maestro Detalle hasta que me solicitaron actualizar para que guarde los items del detalle en una tabla temporal (esto por si se va la luz y se paga la maquina el usuario no vuelva a captura los 50 items que ya había tecleado).

    hasta aqui no tengo ningun problema.

    2 los items del detalle se capturan con un Showmodal de BootStrap  que carga una vista parcial de la tabla temporal de items, cuando abro la pagina por primera la pagina y selecciono los datos del encabezado  me deja agregar los items que necesito.

    El problema se presenta después de que guarda la oferta completa hago lo siguiente;

    1: Seleccionar los datos del encabezado del siguiente registro a guardar

    2.- Oprimo Botón de agregar Marca para poder mostrar el show modal  y se abre sin problemas, pero al momento de guardar los datos del items  del detalle me muestra lo siguiente.

    ahora oprimo el botón reenviar, y se guarda el registro en la tabla temporal, pero no me actualiza en la vista la parte donde carga los items.

    quería ver si me ayudan para que no me reenvié el formulario principal de Guardar todo, únicamente me actualice la vista parcial después de guardar los items es decir.

    bien la vista completa es la siguiente

    @model WebDBT.Models.NewOfertaView
    
    @using (Html.BeginForm("Create", "Ofertas", FormMethod.Post, new { id = "frm-NewOferta" }))
    {
        @Html.AntiForgeryToken()
        <div class="box box-warning">
            <!-- /.box-header -->
            <div class="box-header with-border">
                <h3 class="box-title">Registro de Oferta Técnico-Económica </h3>
                <div class="box-tools pull-right">
                    <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
                    @*<button class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>*@
                </div>
            </div>
            <!-- /.box-body -->
            <div class="box-body" style="display: block;">
                <div class="row">
                    <div class="col-xs-12"><h5 class="text-danger">@Html.ValidationSummary(true, "", new { @class = "text-danger" }) </h5></div>
                    <div class="col-md-12">
                        <!--Contenido-->
                        <div class="panel-body container-fluid">
                            <!--Encabezado-->
                            <div>
                                <div class="row">
                                    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-3">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.MtoProcedimientoId, htmlAttributes: new { @class = "control-label" })
                                            @Html.DropDownList("MtoProcedimientoId", null, htmlAttributes: new { @class = "form-control" })
                                            @Html.ValidationMessageFor(model => model.MtoProcedimientoId, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.MtoProveedorId, htmlAttributes: new { @class = "control-label" })
                                            @Html.DropDownList("MtoProveedorId", null, htmlAttributes: new { @class = "form-control" })
                                            @Html.ValidationMessageFor(model => model.MtoProveedorId, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                </div>
                                @*fragmento de codigo para implementar el codigo  de la partida--->*@
    
                                <div class="row">
                                    <div class="col-xs-12 col-sm-6 col-md-6 col-lg-2">
                                        <div class="form-group has-success">
                                            @*@Html.LabelFor(model => model.Partida, htmlAttributes: new { @class = "control-label col-xs-1" })
                                            @Html.EditorFor(model => model.Partida, new { htmlAttributes = new { @class = "form-control text-center", onblur = "blurFunction()" } })
                                            @Html.ValidationMessageFor(model => model.Partida, "", new { @class = "text-danger" })*@
                                            <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.MtoRequerimientoId, htmlAttributes: new { @class = "control-label" })
                                            @Html.DropDownList("MtoRequerimientoId", null, htmlAttributes: new { @class = "form-control" })
                                            @Html.ValidationMessageFor(model => model.MtoRequerimientoId, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-2">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.Gpo, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.Gpo, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Gpo, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-2">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.Gen, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.Gen, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Gen, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-2">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.Esp, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.Esp, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Esp, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-2">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.Dif, htmlAttributes: new { @class = "control-label col-md-2" })
                                            @Html.EditorFor(model => model.Dif, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Dif, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-2">
                                        <div class="form-group has-success">
                                            @Html.LabelFor(model => model.Var, htmlAttributes: new { @class = "control-label col-md-2" })
                                            @Html.EditorFor(model => model.Var, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Var, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
                                </div>
    
                                <div class="row">
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-3">
                                        <div class="form-group has-error">
                                            @Html.LabelFor(model => model.PrecioOfertado, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.PrecioOfertado, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.PrecioOfertado, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-1 col-sm-1 col-md-1 col-lg-3">
                                        <div class="form-group has-warning">
                                            @Html.LabelFor(model => model.Descuento, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.Descuento, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.Descuento, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-2 col-sm-2 col-md-2 col-lg-3">
                                        <div class="form-group has-warning">
                                            @Html.LabelFor(model => model.MaximoOfertado, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.MaximoOfertado, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.MaximoOfertado, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
    
                                    <div class="col-xs-2 col-sm-2 col-md-2 col-lg-3">
                                        <div class="form-group has-warning">
                                            @Html.LabelFor(model => model.MinimoOfertado, htmlAttributes: new { @class = "control-label" })
                                            @Html.EditorFor(model => model.MinimoOfertado, new { htmlAttributes = new { @class = "form-control text-center" } })
                                            @Html.ValidationMessageFor(model => model.MinimoOfertado, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div>
                                <a data-modal='' class="btn btn-success btn-xs" href='@Url.Action("AddMarca", "Ofertas")' title="Agregar Marcas">
                                    <i class="fa fa-cloud-upload"></i> Agregar Marca
                                </a>
                            </div>
                            <!--detalle-->                        
                                @if (Model.DetalleOfertasTemp.Count > 0)
                                {
                                    <div id="LoadMarcas">
                                        @Html.Action("_ListMarcas", new { id = Model.MtoUsuarioId })
                                    </div>
                                }                        
                        </div>
                        <!--Fin-Contenido-->
                    </div>
                </div><!-- /.row -->
            </div>
            <!-- /.box-footer -->
            <div class="box-footer" style="text-align:right">
                <span id="progress" class="text-center" style="display: none;">
                    <img src="~/Content/images/Cargando.gif" alt="Cargando" style="max-width:30px;max-height:30px;" />
                    Procesando..
                </span>
                <button class="btn btn-success" type="button" onclick="location.href='@Url.Action("Index", "Licitacions")'">
                    <i class="fa fa-arrow-left"></i>
                    Regresar
                </button>
                <div>
                    @if (Model.DetalleOfertasTemp.Count > 0)
                    {
                        <button class="btn btn-primary" type="submit"><i class="fa fa-floppy-o"></i> Guardar</button>
                    }
                </div>
            </div>
        </div>
    }
    
    <!-- modal placeholder-->
    <div id='myModal' class='modal fade in'>
        <div class="modal-dialog">
            <div class="modal-content">
                <div id='myModalContent'>
                    Cargando....<img src="~/Content/images/loading2.gif" alt="Cargando" style="max-width:60px;max-height:60px;" />
                </div>
            </div>
        </div>
    </div>
    
    <div class="modal" id="modal">
        <div class="modal-dialog">
            <div class="modal-content">
                <div id='myModalContent'>
                    Cargando....<img src="~/Content/images/loading2.gif" alt="Cargando" style="max-width:60px;max-height:60px;" />
                </div>
            </div>
        </div>
    </div>
    
    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
        @Scripts.Render("~/bundles/WEBDBT")  
        @Scripts.Render("~/Scripts/Apertura/Apertura.js") 
        <script type="text/javascript">
            $(document).ready(function () {
                function CargarAdjuntos() {
                    $("#LoadMarcas").load("@Url.Content("~/Ofertas/_ListMarcas?id=" + Model.MtoUsuarioId)");
                }
            })
    </script>
       
    }


    la accion de este controlador es 

    public ActionResult Create(NewOfertaView view)
            {
                var user = db.MtoUsuarios.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
                if (user == null)
                {
                    RedirectToAction("Index", "Home");
                }
    
                if (!ModelState.IsValid)
                {
                    ViewBag.MtoProcedimientoId = new SelectList(ComboHelper.GetProcedimientos(user.MtoCompaniaId,1)
                                                            .Where(l => l.MtoEstadoId == 1), "MtoProcedimientoId", "NoLicitacion", view.MtoProcedimientoId);
    
                    ViewBag.MtoProveedorId = new SelectList(ComboHelper.GetProveedores(0)
                                                        .OrderBy(P => P.RazonSocial), "MtoProveedorId", "RazonSocial", view.MtoProveedorId);
    
    
                    ViewBag.MtoRequerimientoId = new SelectList(ComboHelper.GetRequerimiento(view.MtoProcedimientoId), "MtoRequerimientoId", "PartidaClave", view.MtoRequerimientoId);
    
                    view.DetalleOfertasTemp = db.DetalleOfertasTemp
                        .Where(dot => dot.MtoUsuarioId == user.MtoUsuarioId).ToList();
    
                    return View(view);
                }
    
                var response = DBOferta.SaveNewOferta(view, User.Identity.Name);
                if (response.succeeded)
                {
                    ViewBag.MtoProcedimientoId = new SelectList(ComboHelper.GetProcedimientos(user.MtoCompaniaId,1)
                    .Where(l => l.MtoEstadoId == 1), "MtoProcedimientoId", "NoLicitacion", view.MtoProcedimientoId);
    
                    ViewBag.MtoProveedorId = new SelectList(ComboHelper.GetProveedores(0)
                    .OrderBy(P => P.RazonSocial), "MtoProveedorId", "RazonSocial", view.MtoProveedorId);
    
                    ViewBag.MtoRequerimientoId = new SelectList(ComboHelper.GetRequerimiento(view.MtoProcedimientoId), "MtoRequerimientoId", "PartidaClave", view.MtoRequerimientoId);
    
                    var view2 = new NewOfertaView
                    {
                        MtoProcedimientoId = view.MtoProcedimientoId,
                        MtoProveedorId = view.MtoProveedorId,                 
    
                        DetalleOfertasTemp = db.DetalleOfertasTemp
                        .Where(dot => dot.MtoUsuarioId == user.MtoUsuarioId).ToList(),
                    };
    
                    //ViewBag.Exito = "Exito";
                   return View(view2);                                
                   //return Json(new { NewOfertaView = view2 }, JsonRequestBehavior.AllowGet);
                }
    
                ModelState.AddModelError(string.Empty, response.Message);
                return Json(new { success = false });
    
            }


    ahora la vista parcial es esta.

    @model WebDBT.Models.DetalleOfertaTemp
    
    @{
        //ViewBag.Title = "Registrar Marca";
        Layout = null;
    }
    
    <div class="modal-header modal-header-primary">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 class="modal-title"><i class="fa  fa-plus"></i>&nbsp;Registro Marca</h3>
    </div>
    <div class="text-center">
        <strong>@Html.ValidationSummary(true, "", new { @class = "text-danger" })</strong>
    </div>
    
    @using (Html.BeginForm())
    {
        @Html.AntiForgeryToken()
        <div class="form-horizontal">
            @Html.HiddenFor(model => model.MtoUsuarioId)
            <div class="form-group">
                <br />
                @Html.LabelFor(model => model.Marca, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.Marca, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.Marca, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.RegistroSanitario, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.RegistroSanitario, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.RegistroSanitario, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.OficioExime, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.OficioExime, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.OficioExime, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.TramiteInclusion, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.TramiteInclusion, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.TramiteInclusion, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.TitularRegistro, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.TitularRegistro, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.TitularRegistro, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.RfcTitular, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.RfcTitular, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.RfcTitular, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.Origen, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.Origen, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.Origen, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.Fabricante, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.Fabricante, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.Fabricante, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.RfcFabricante, htmlAttributes: new { @class = "control-label col-md-4" })
                <div class="col-md-8">
                    @Html.EditorFor(model => model.RfcFabricante, new { htmlAttributes = new { @class = "form-control UpperCase" } })
                    @Html.ValidationMessageFor(model => model.RfcFabricante, "", new { @class = "text-danger" })
                </div>
            </div>
    
    
            <div class="modal-footer">
                <span id="progress" class="text-center" style="display: none;">
                    <img src="~/Content/Images/loading2.gif" />
                    Wait..
                </span>
                <button class="btn btn-primary" id="BtnSubmit"><i class="fa fa-floppy-o"></i> Guardar</button>
                <button class="btn btn-default" data-dismiss="modal"><i class="fa fa-remove active"></i> Cerrar</button>
            </div>
        </div>
    }
    
    @section Scripts {
        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/jqueryval")
        <script src="@Url.Content("/Scripts/Apertura/Apertura.js")"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $('#BtnSubmit').click(function () {
                    debugger;
                    e.preventDefault(); // prevent normal form submit
                    var form = $(this);
                    var data = form.serialize();
                    $.ajax({
                        type: "POST",
                        url: "/Ofertas/AddMarca/",
                        data: data, // Adjuntar los campos del formulario enviado.
                        success: function (data) {
                            //$("#respuesta").html(data); 
                            alert('Sucedio');
                        }
                    });
                })
            })
        </script>
    
    }

    y la acción de la vista parcial es:

    public ActionResult AddMarca(DetalleOfertaTemp view)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
    
                        var OfertaTemp = new DetalleOfertaTemp
                        {
                            MtoUsuarioId = view.MtoUsuarioId,
                            OficioExime = view.OficioExime == null ? "" : view.OficioExime.ToUpper(),
                            TramiteInclusion = view.TramiteInclusion == null ? "" : view.TramiteInclusion.ToUpper(),
                            Marca = view.Marca == null ? "" : view.Marca.ToUpper(),
                            RegistroSanitario = view.RegistroSanitario == null ? "" : view.RegistroSanitario.ToUpper(),
                            TitularRegistro = view.TitularRegistro == null ? "" : view.TitularRegistro.ToUpper(),
                            RfcTitular = view.RfcTitular == null ? "" : view.RfcTitular.ToUpper(),
                            Origen = view.Origen == null ? "" : view.Origen.ToUpper(),
                            Fabricante = view.Fabricante == null ? "" : view.Fabricante.ToUpper(),
                            RfcFabricante = view.RfcFabricante == null ? "" : view.RfcFabricante.ToUpper(),
                        };
    
                        db.DetalleOfertasTemp.Add(OfertaTemp);
                        var response = DBHelper.SaveChanges(db);
                        if (response.succeeded)
                        {
                            return Json(new { success = true });
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, response.Message);
                            return Json(new { success = false });
                        }
                    }
                }
                catch (Exception Ex)
                {
                    ModelState.AddModelError(string.Empty, Ex.Message);
    
                }
                return PartialView("AddMarca", view);
            }

    de verdad agradeceria su ayuda para poder solucionarlo, ay que me trae de un hilo.

    muchas gracias por su ayuda.


    Horacio Xochitemol Bautista


    • Editado Xochitemol miércoles, 31 de mayo de 2017 18:47 Actualizacion
    miércoles, 31 de mayo de 2017 18:44

Todas las respuestas

  • hola

    >>únicamente me actualice la vista parcial después de guardar los items es decir.

    si bien usas una partialview para renerizar el grid de marcas en realidad esto no es desacoplado como para poder recargar solo esa seccion cuando se agrega una nueva marca ya que usas

    @Html.Action("_ListMarcas", new { id = Model.MtoUsuarioId })

    deberias cargar esa seccion de tabla usando ajax por medio de jquery, de esta forma luego de insertar la marca puedes realizar una llamado  al action que devuelve el partial y cargarlo en un determinado lugar, por lo general dento de un div

     How to Load Partial Views in ASP.Net MVC Using jQuery Ajax

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 31 de mayo de 2017 21:17
  • que tal leandro como siempre muchas gracias, te comento los cambios que hice.

    1.- hice una función que carga la vista parcial de marcas de la siguiente manera.

    function init() {   
    
        UploadMarcas();
    }
    
    function UploadMarcas()
    {   
        var MtoUsuarioId = $("#MtoUsuarioId").val();    
        $("#LoadMarcas").load("/Ofertas/_ListMarcas/?id=" + MtoUsuarioId);
    
    }

    ello me carga la vista prcial de marcas.

    2.- en la ventana show modal, abro una vista parcial  para la captura de marcas, y cuando oprimo submit guarda, guarda el registro con exito; pero no se como recargar el div $('#LoadMarcas'), ya que me hace el cargo pero en la vista parcial del showmodal. 

    no se como actualizar el div del padre o en cu caso volver a ejecutar la funcion UploadMarcas

    ayuda por favor :-)


    Horacio Xochitemol Bautista

    miércoles, 7 de junio de 2017 22:15
  • Que tal amigos nuevamente yo, a ver les cuento hice algunas modificaciones al código en la vista parcial donde cargo el show modal de bootstrop al boton de tipo submit lo cambie por: 

     <button class="btn btn-primary" type="button" onclick="submitFormMarca()"><i class="fa fa-floppy-o"></i> Agregar</button>

    y después hice una función que  mada a ejecutar el evento:

    function submitFormMarca() {        
        var form = $('#frmMarca').serialize();   
            console.log(form);
            $.ajax({
                type: "POST",
                url: "/Ofertas/AddMarca/",
                contenType: "application/html; charset=utf-8",
                data: form,
                datatype: 'html',
                success: function (result) {              
                    $("#myModal").modal('hide');               
                    $('#LoadMarcas').html(result);                
                },
                error: function (xhr, status) {
                    $("#myModal").modal('show');
                    $('#myModalContent').html(result);
                    bindForm();
                }
            });    
    }

    pues bien eso me  carga la vista parcial de marcas, siempre y cuando la información proporcionada sea valida  

    Pero si primo el botón agregar sin información.

    me regresa la vista parcial de captura de ofertas, pero no en el showmodal,

     como podría hacer para abrir el showmodal con los errores, que regresa el Actionresult.

    de verdad agradezco su apoyo.


    Horacio Xochitemol Bautista

    jueves, 8 de junio de 2017 22:09