2014-01-30 8 views
0

Я новичок в MVC, у меня есть проблема с заполнением выпадающего меню внутри таблицы html. У меня есть классы, какВыпадающий список внутри таблицы HTML Список в MVC

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() 
    } 

Чем делают страны DropDown использованием Model.Countries

+0

Благодаря он работает, вы можете мне помочь, чтобы связать его в выпадающем списке, я смог получить '' 'стран, как модель .Countries', но когда я попытался связать его как '@ Html.DropDown (« Страна », (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 ; 
Смежные вопросы