使用ASP.Net MVC3中的jQuery动态填充下拉列表

我有两个型号:

public class ProfessorModels { public string FullName { get; set; } public int ID { get; set; } } 

 public class ClassModels { public int ID { get; set; } public string Professor { get; set; } public decimal Name { get; set; } } 

在我的视图中有一个表单来添加类:

 @model MvcApp.Models.ClassModels @{ ViewBag.Title = "Create"; } 

Create

@using (Html.BeginForm()) { @Html.ValidationSummary(true)
ClassModels
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)

}
@Html.ActionLink("Back to List", "Index")

我想在课堂视图中添加一个下拉菜单,其中列出了所有可用的教授。 教授在db中,我可以轻松地从控制器调用db并将所有教授加载到某个列表/数组中。 我需要帮助,如何使用jQuery与教授填充下拉列表。

在你的控制器中:

  [HttpGet] public virtual JsonResult LoadInfo() { var query = _repository.GetInformation(); //Here you return the data. return Json(query, JsonRequestBehavior.AllowGet); } 

然后在你看来:

  

然后使用jQuery加载下拉列表

 function LoadInfo() { $.getJSON("@Url.Action(MVC.ControllerName.MethodName())", null, function (data) { $("#info").empty(); $.each(data, function () { $("#info").append($("").val(this.Id).text(this.Name)); }); }); } 

这假定Id和Name是对象的属性。 您可以使用ID和FullName,具体取决于您加载的下拉列表。 我还使用T4MVC来获取不同的方法名称。

希望这可以帮助,

有一个返回Proffessors列表的action方法

 public ActionResult GetProfessors() { var professorList=repo.GetProfessors(); //get list of professor object return Json(professorList,JsonRequestBehavior.AllowGet); } 

现在在你的视图中,有一个DropDown

  

使用jQuery ajax在文档ready事件中将数据加载到此元素。 在视图中添加以下脚本。

  

假设您的Controller名称是YourController并且您正确地将jQuery加载到此页面中。