下载MVC中的HTML表列表中的列表

时间:2014-01-30 07:23:26

标签: c# asp.net-mvc asp.net-mvc-3

我是MVC的新手,我在填充html表中的下拉列表时遇到了一些问题。我有像

这样的课程
Public Class Employee
{
    public int EmployeeId {get; set;}
    public string EmployeeName {get; set;}
    public string Country {get; set;}

    public Employee() {}
    public Employee(Employees emp)
    {
        this.EmployeeId=emp.EmployeeId;
        this.EmployeeName=emp.EmployeeName;
        this.Country=emp.Country;
    }
}

Public Class Employees : List<Employee>
{
    Public Employees()
    {
        MyEntities entities=new MyEntities();

        foreach(Employees emp in entities.Employees)
        {
            this.Add(new Employee(emp));
        }
    }
}

同样,我Country and Countries classes也有CountryId and CountryName。我是来自控制器的视图中的员工绑定列表,如

public ActionResult Index()
{
    Employees emp = new Employees();
    return View(emp);
}

这是向我展示我的数据库中的员工数据。在我的表格的最后一行,我已为Adding a new employee手动添加了一行,方法是输入EmployeeName并从下拉列表中选择Country

问题出现在下拉列表中。我已经在我的视图中显示了一份员工列表。是否可以在我的下拉列表中再添加一个Countries列表。而且我还需要将所选国家/地区绑定到employee.country属性。

我对webforms感觉更舒服,但在MVC中我不知道如何实现这一点。有人可以帮我从这里出去吗。提前谢谢。

2 个答案:

答案 0 :(得分:1)

而不仅仅是Employees传递包含两个集合的模型:

  class IndexViewModel
  {
    public IEnumerable<Employee> Employees {get;set;}
    public IEnymerable<Conuntry> Countries {get;set;}
  }

构造并传递给视图

  return View(new IndexViewModel { 
     Employees = employeeRepository.GetAll(),
     Countries = GetAllCountries()
  }

使用Model.Countries

渲染国家/地区下拉列表

答案 1 :(得分:1)

试试这个......

查看

@Html.DropDownList("Cert", (SelectList)ViewData["Countries"], "--Select--", new { @class="dropdownlist" ,id = "Country" })

模型

 public string Certification{ get; set; }

控制器

 var Country = new SelectList(new[]
            {
                new {ID="1",Name="India"},
                new{ID="2",Name="Nepal"},
                new{ID="3",Name="Srilanka"},...etc
            });
            ViewData["Countries"] = Country ;