Html.ListBoxFor error problem asp.mvc 3

2019-07-04 01:13发布

I have something like this in my code and I am getting error: Exception Details: System.ArgumentException: Value cannot be null or empty. Parameter name: name . What am I doing wrong ? Thanks for help

@model IEnumerable<NHibernateFluentProject.Patient>

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

2条回答
可以哭但决不认输i
2楼-- · 2019-07-04 01:56

@Html.ListBoxFor is used for your strong typed viewmodel. which could help to bind to your property. First part will take a lambda expression for a single item as a default seleced for your listbox, second part will take the item collections to dispaly all the listbox items. For example: you have following two classes.

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

From you view, you should do something like

@model HospitalViewModel

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

OR if you only want to bind all your patients to a listbox, then use Html.ListBox instead

@model IEnumerable<Patient>

@Html.ListBox("ListBoxName", new SelectList(Model,"Id", "FirstName"));
查看更多
爷、活的狠高调
3楼-- · 2019-07-04 01:58

You need to pass a lambda expression containing the property to bind the listbox to.

查看更多
登录 后发表回答