2014-01-30 122 views
0

我是MVC的新手,我有一些問題來填充html表格內的下拉列表。我有我的課像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中,我不知道如何實現這一點。有人可以幫我從這裏出去嗎。提前致謝。

回答

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

+0

由於這是工作,你能不能幫我把它綁定在下拉,我能夠得到'Countries'像'型號.Countries',但是當我試圖將其綁定爲「@Html.DropDown(」Country「,(IEnumerable )Model.Countries')時,它顯示錯誤。 – shanish

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 ;