Html.ListBoxFor错误问题asp.mvc 3

时间:2011-02-23 21:20:30

标签: asp.net html asp.net-mvc-3 razor listbox

我的代码中有类似的东西,我收到错误:异常详细信息:System.ArgumentException:Value不能为null或为空。 参数名称:名称。我究竟做错了什么 ?谢谢你的帮助

@model IEnumerable<NHibernateFluentProject.Patient>

@Html.ListBoxFor(model => model, new SelectList(Model,"ID", "FirstName"));

2 个答案:

答案 0 :(得分:6)

@ Html.ListBoxFor用于强类型视图模型。这可能有助于绑定您的财产。第一部分将单个项目的lambda表达式作为列表框的默认选择,第二部分将使项目集合显示所有列表框项目。 例如:您有以下两个类。

public class HospitalViewModel
{
    public string SelectedPatient { get; set; }
    public IEnumerable<Patient> AllPatients { get; set; }
}
public class Patient
{
    public int Id { get; set; }
    public string FirstName { get; set; }
}

从您的角度来看,您应该执行类似

的操作
@model HospitalViewModel

@Html.ListBoxFor(model => model.SelectedPatient, new SelectList(Model.AllPatients,"Id", "FirstName"));

或者,如果您只想将所有患者绑定到列表框,则使用Html.ListBox代替

@model IEnumerable<Patient>

@Html.ListBox("ListBoxName", new SelectList(Model,"Id", "FirstName"));

答案 1 :(得分:0)

您需要传递一个包含该属性的lambda表达式,以将列表框绑定到。