C# 如何将json数据绑定到Asp.MVC5中的dropdownlist?

C# 如何将json数据绑定到Asp.MVC5中的dropdownlist?,c#,json,ajax,asp.net-mvc-5,C#,Json,Ajax,Asp.net Mvc 5,嗨,我有一个字段叫Employee。它是下拉式的。我想使用ajax将数据库中的数据绑定到下拉列表中。 我尽了最大的努力,但是它没有正确地绑定下拉列表。还有一个疑问是必须使用任何通用插件来使用ajax将数据绑定到下拉列表 我的模型代码visitorsviewmodel 我的看法 我的Jquery }) 您应该能够轻松地修改以下内容,以使用Ajax而不是Razor 请根据您的口味修改 <select name="ddlX" id=""ddlX"> @foreach (var i

嗨,我有一个字段叫Employee。它是下拉式的。我想使用ajax将数据库中的数据绑定到下拉列表中。 我尽了最大的努力,但是它没有正确地绑定下拉列表。还有一个疑问是必须使用任何通用插件来使用ajax将数据绑定到下拉列表

我的模型代码visitorsviewmodel

我的看法

我的Jquery


})

您应该能够轻松地修改以下内容,以使用Ajax而不是Razor

请根据您的口味修改

 <select name="ddlX" id=""ddlX">
    @foreach (var item in model)
                        {
 <option value="@item.EmployeeID" selected="selected">@item.EmployeeName</option>
}
   </select>
然后在服务器端,您可以确定正在循环的项目数

 for (int i = cursor; i < endNumber; i++)
            {
                string ddlID = "ddlX";
                var selectedDDLitem = Request.Form[ddlX];
 }
这也适用于分页列表

如果你喜欢,我可以做一些html和css的东西来展示如何使用div将返回的html放入。我不确定您是否询问如何填充div或如何正确循环数据


我这样回答是因为它也适用于MVC6。

将员工集合添加到ViewModel或Viewbag,然后将集合绑定到下拉列表。根据我们的讨论,您希望在ViewModel中添加一个集合,现在:

视图模型

public class VisitorsViewModel
{
    public string EmployeeId
    {
        get;
        set;
    }

    public IEnumerable<Employee> Employees
    {
        get;
        set;
    }
}

//There might be other properties as well in this class
public class Employee
{
    public Guid? EmployeeId
    {
        get;
        set;
    }

    public string DisplayName
    {
        get;
        set;
    }
}

我在这里编了一把小提琴-

不清楚你在问什么。你是说没有呈现选项吗?为什么要使用ajax来填充选项?实际上,stephen我知道这个选项只是为了将数据绑定到下拉列表。然后在绑定数据后,我在下拉列表中再次选择了哪个值,我想将其传递给cottroller进行另一个操作,但为什么要使用ajax而不是在控制器和将它传递给视图?您还没有解释您的问题所在。@StephenMuecke通常我想将数据库中的数据绑定到下拉列表。我知道有两种方法,一种是使用ajax,另一种是使用viewbag,但使用viewbag并不是正确的绑定方式,您不需要它。
$(function () {
    debugger
   $.ajax(
           '@Url.Action("GetEmployee", "NextFollowUp", new { Area = "Sales" })', {
           type: "GET",
           datatype: "Json",
           success: function (data) {
               debugger;
               $.each(data, function (index, value) {
                   $('#EmployeeID').append('<option value ="' + value.EmployeeID + '">' + value.DisplayName + '</option>');
               });
           }
      });
 <select name="ddlX" id=""ddlX">
    @foreach (var item in model)
                        {
 <option value="@item.EmployeeID" selected="selected">@item.EmployeeName</option>
}
   </select>
 for (int i = cursor; i < endNumber; i++)
            {
                string ddlID = "ddlX";
                var selectedDDLitem = Request.Form[ddlX];
 }
public class VisitorsViewModel
{
    public string EmployeeId
    {
        get;
        set;
    }

    public IEnumerable<Employee> Employees
    {
        get;
        set;
    }
}

//There might be other properties as well in this class
public class Employee
{
    public Guid? EmployeeId
    {
        get;
        set;
    }

    public string DisplayName
    {
        get;
        set;
    }
}
 @Html.DropDownListFor(model =>model.EmployeeId, new SelectList(Model.Employees,"EmployeeId","DisplayName"),"Select", new{@class="form-control"})