2014-12-20 2 views
0

Я новичок в mvc. Мне нужно использовать dropdownlist на моем веб-сайте, который имеет значение как emp_id и текст как user_id. Проблема в том, что таблица - это другая база данных, и мне нужно вставить emp_id в мою базу данных для действия create() моего элемента управления. Я могу перечислить значения с DropDownList, но как я могу вставить значение в моей model.I было попробовать много остроумия dropdoenlistfor, но я не могу найти выход, кроме «Нулевое значение ИСКЛЮЧЕНИЯ»Невозможно заполнить выпадающий список с помощью viewdata

зрения

@Html.DropDownList("SelectedItem", (IEnumerable<SelectListItem>)ViewData["employees"]) @* this works [email protected]* 


    @Html.DropDownListFor(model => model.empid,new SelectList((IEnumerable<SelectListItem>)ViewData["employees"], "Value","Text", Model.empid), "Select Employee") 

контроллер

public ActionResult Create() 
     { 
      BussinessLayer.Utils utobj = new BussinessLayer.Utils(); 
      ViewData["employees"] = utobj.getEmployees(); 
      return View(); 
     } 

класс

public List<SelectListItem> getEmployees() 
     { 
      DBSet DB = new DBSet(); 
      SqlCommand cmd = new SqlCommand("select EmpID,User_ID from User_M"); 
      DataTable dt = DB.SelectFrom("ipaddress","sqlserver", cmd); 
      List<employee> emplist = new List<employee>(); 
      employee emp; 
      if (dt.Rows.Count > 0) 
      { 
       for (int i = 0; i < dt.Rows.Count; i++) 
       { 
        emp=new employee(); 
        emp.empid = dt.Rows[i][0].ToString(); 
        emp.User_ID = dt.Rows[i][1].ToString(); 
        emplist.Add(emp); 
       } 
      } 

      List<SelectListItem> items = new List<SelectListItem>(); 
      foreach (employee s in emplist) items.Add(new SelectListItem { Text = s.User_ID, Value =s.empid }); 
      return items; 

     } 
+0

вид сильно типизированных с моделью «пользователи» мне нужно присвоить значение для EmpId из каждого «пользователей» –

+0

Вы должны показать вашей модели и метода POST для 'Create()'. И почему вы создаете новый 'SelecList' в представлении, когда' ViewData ["employees"] 'уже является' SelectList'? –

ответ

-1
public class IndexPageModel 
{ 
    public int PersonId {get;set;} 
} 

[HttpGet] 
public ViewResult IndexPage() 
{ 
    ViewBag.PersonList = new List<Person>{ ... }; 
    return new View(); 
} 

[HttpPost] 
public ActionResult IndexPage(IndexPageModel model) 
{ 
    model.PersonId // Got it! 
} 

Вид:

@model IndexPageModel 

@using(Html.BeginForm(){ 
    @Html.DropDownListFor(model => model.PersonId,new SelectList((IEnumerable<SelectListItem>)ViewData["employees"]) 
    <input type=submit value="go" /> 
}) 
Смежные вопросы