我是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中我不知道如何实现这一点。有人可以帮我从这里出去吗。提前谢谢。
答案 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 ;