使用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) } @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加载到此页面中。