MVC 2中的LIstbox

时间:2010-11-17 11:17:28

标签: asp.net-mvc asp.net-mvc-2

我有一张员工表。从那我想在列表框中加载员工姓名。我不知道从哪里开始。请指导我。

2 个答案:

答案 0 :(得分:1)

一如既往地定义代表您数据的视图模型:

public class Employee
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class MyViewModel
{
    public string SelectedEmployeeId { get; set; }
    public IEnumerable<Employee> Employees { get; set; }
}

然后是操纵模型的控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            // TODO: Instead of hardcoding fetch from your repository
            Employees = Enumerable.Range(1, 5).Select(i => new Employee
            {
                Id = i.ToString(),
                Name = "employee " + i
            })
        };
        return View(model);
    }
}

最后在视图中生成一个下拉列表:

<%: Html.DropDownListFor(
    x => x.SelectedEmployeeId, 
    new SelectList(Model.Employees, "Id", "Name")
) %>

如果您想允许多个选择a.k.a ListBox,则需要进行一些更改。首先,您需要在模型中使用一系列员工ID:

public class MyViewModel
{
    public string[] SelectedEmployeeIds { get; set; }
    public IEnumerable<Employee> Employees { get; set; }
}

然后在视图中使用ListBoxFor帮助器:

<%: Html.ListBoxFor(
    x => x.SelectedEmployeeIds,
    new SelectList(Model.Employees, "Id", "Name")
) %>

答案 1 :(得分:0)

你也可以尝试我的AjaxDropdown助手,并通过jquery Ajax填充你的列表框(你不必知道关于jquery的任何事情)

http://awesome.codeplex.com/

有一个现场演示,您可以尝试下载