无法使用视图数据填充下拉列表

本文关键字:数据 填充 下拉列表 视图 | 更新日期: 2023-09-27 18:34:44

我是 mvc 的新手。我需要在我的网站中使用下拉列表,它的值与emp_id一样,文本具有user_id。问题是该表是另一个数据库,我需要在控件的 create(( 操作上将emp_id插入到我的数据库中。我可以使用下拉列表列出值,但是如何将值插入到我的模型中。我尝试了很多机智的dropdoenlistfor,但是除了"空值异常"之外,我找不到任何其他输出

视图

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

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

.class

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;
        }

无法使用视图数据填充下拉列表

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" />
})