none
No se ejecuta JavaScript en vista parcial RRS feed

  • Pregunta

  • Hola amigos

    Estoy utilizando Areas y una de esa areas se llama "Superusuario". Dentro de esta área tengo una vista parcial con código JavaScript y Ajax pero no se ejecuta el código JavaScript, ya probé colocando el JavaScript en la vista padre y tampoco funciona, alguien me puede ayudar a dar con el error?

    Código de vista parcial ("_Sede"):

    @model RolesMVC3.Areas.Superusuario.Models.SedeViewModel
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
               <script type="text/javascript">
                   $(document).ready(function () {
                       $("#universidad").change(function () {
                           var idDept = $(this).val();
                           $.getJSON("Areas/Superusuario/Controllers/Consultorio/GetCiudadList", { id: idDept },
                    function (myData) {
                        var select = $("#ciudad");
                        select.empty();
                        select.append($('<option/>', {
                            value: 0,
                            text: "-- Seleccione Ciudad --"
                        }));
                        $.each(myData, function (index, itemData) {
                            select.append($('<option/>', {
                                value: itemData.Value,
                                text: itemData.Text
                            }));
                        });
                    });
                       });
                   });
    </script>
    
      @using (Html.BeginForm())
      {
           @Html.DropDownListFor(model => model.IdUniversidad,
                       new SelectList(ViewBag.IdUniversidad as System.Collections.IEnumerable, "IdUniversidad", "Nombre"),
            "-- Selecione Universidad --", new { id = "universidad" })
    
            @Html.DropDownListFor(model => model.Ciudad,
            new SelectList(Enumerable.Empty<SelectListItem>(), "IdCiudad", "NombreCiudad"), "-- Seleccione Ciudad --",
            new { id = "ciudad" })
      }

    Código de la vista padre:

    @model RolesMVC3.Models.CONSULTORIO
    
    @{
        ViewBag.Title = "Crear Consultorio";
    }
    
    <h2>CREACIÓN DE CONSULTORIOS</h2>
    
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    
    
    @using (Html.BeginForm()) {
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>CONSULTORIO</legend>
    
            <fieldset>
             @Html.Partial("_Sede")
            </fieldset>
    
             <div class="editor-label">
                @Html.LabelFor(model => model.DireccionConsultorio)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.DireccionConsultorio)
                @Html.ValidationMessageFor(model => model.DireccionConsultorio)
            </div>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.TelefonoConsultorio)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.TelefonoConsultorio)
                @Html.ValidationMessageFor(model => model.TelefonoConsultorio)
            </div>
    
            <div class="editor-label">
                @Html.LabelFor(model => model.CorreoConsultorio)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.CorreoConsultorio)
                @Html.ValidationMessageFor(model => model.CorreoConsultorio)
            </div>
    
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
    


    CADAVID

    domingo, 25 de marzo de 2012 19:46

Respuestas

  • Efectivamente el error era el acceso al controlador, lo corregi colocanco el acceso asi:

     $.getJSON('@Url.Action("GetCiudadList", "Consultorio", new { Area = "Superusuario", controller = "Consultorio" })', { id: idDept },


    CADAVID

    • Marcado como respuesta CADAVID lunes, 26 de marzo de 2012 0:32
    lunes, 26 de marzo de 2012 0:32

Todas las respuestas

  • Hola Cadavid.

    No veo que tengas ningún div con el id "universidad".

    No obstante, comprueba que no tienes ningún error de javascript, ya que, un error hace que no se ejecute el resto del código.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    domingo, 25 de marzo de 2012 21:23
  • Hola Santiago

    Gracias por tu comentario, pero mira: este DropDown lo llamo así

    @Html.DropDownListFor(model => model.IdUniversidad, new SelectList(ViewBag.IdUniversidad as System.Collections.IEnumerable, "IdUniversidad", "Nombre"), "-- Selecione Universidad --", new { id = "universidad" })

    Pero de pronto mi error esta en la siguiente linea, si es esa la menar correcta de acceder a la acción "GetCiudadList" del controlador "Consultorio" que se encuentra dentro del área"Superusuario"?

    $.getJSON("Areas/Superusuario/Controllers/Consultorio/GetCiudadList",{ id: idDept }

    Muchas Gracias!!!!


    CADAVID


    • Editado CADAVID domingo, 25 de marzo de 2012 21:44 Mejor explicacion
    domingo, 25 de marzo de 2012 21:43
  • Efectivamente el error era el acceso al controlador, lo corregi colocanco el acceso asi:

     $.getJSON('@Url.Action("GetCiudadList", "Consultorio", new { Area = "Superusuario", controller = "Consultorio" })', { id: idDept },


    CADAVID

    • Marcado como respuesta CADAVID lunes, 26 de marzo de 2012 0:32
    lunes, 26 de marzo de 2012 0:32