级联DropDown不返回值

时间:2012-03-26 00:53:28

标签: javascript asp.net-mvc-3

我有两个级联下拉列表,当我运行应用程序时一切正常,因为级联工作,但当我得到下拉列表的值时,只获得第一个下拉列表的值。第二个我总是得到零值。

ViewModel代码:

public class MyViewModel
    {
        public string SelectedUniversidadId { get; set; }
        public string SelectedCiudadId { get; set; }
        public IEnumerable<UNIVERSIDAD> Universidades { get; set; }
    }

部分查看代码:

<script type="text/javascript">
     $(function () {
         $('#universidad').change(function () {
             var selectedUniversidadId = $(this).val();
             $.getJSON('@Url.Action("GetCiudadList", "Consultorio", new { Area = "Superusuario", controller = "Consultorio" })', { UniversidadId: selectedUniversidadId }, function (myData) {
                 var citiesSelect = $('#ciudad');
                 citiesSelect.empty();
                 $.each(myData, function (index, itemData) {
                     citiesSelect.append($('<option/>', {
                         value: itemData.Value,
                         text: itemData.Text
                     }));
                 });
             });
         });

     });
</script>
   @model RolesMVC3.Areas.Superusuario.Models.MyViewModel
   <div>
    Universidad: 
    @Html.DropDownListFor(x => x.SelectedUniversidadId, new SelectList(ViewBag.IdUniversidad, "IdUniversidad", "Nombre"), "-- Selecione Universidad --", new { id = "universidad" })
</div>
<div>
    Ciudad: 
    @Html.DropDownListFor(x => x.SelectedCiudadId, Enumerable.Empty<SelectListItem>(), "-- Seleccione Ciudad --", new { id = "ciudad" })
</div>

控制器代码:

 public ActionResult GetCiudadList(int UniversidadId)
        {
            decimal idd = (decimal)UniversidadId;


            var universidades = (from u in db.UNIVERSIDAD
                              join s in db.SEDE_UNIVERSIDAD on u.IdUniversidad equals s.IdUniversidad
                              join c in db.CIUDAD on s.IdCiudadSede equals c.IdCiudad
                              where u.IdUniversidad == idd
                              select c).ToList();
            var myData = universidades.Select(a => new
            {
                Text = a.NombreCiudad,
                Value = a.IdCiudad.ToString(),
            });
            return Json(myData, JsonRequestBehavior.AllowGet);

谢谢和祝福

1 个答案:

答案 0 :(得分:0)

您需要一个接收2个参数的控制器操作(2个下拉列表的选定值)。另外,请注意输入元素的名称属性的值。参数的名称必须与“name”输入属性相同。