Html.ListBox для решения проблемы asp.mvc 3 - PullRequest
3 голосов
/ 24 февраля 2011

У меня есть что-то подобное в моем коде, и я получаю сообщение об ошибке: Сведения об исключении: System.ArgumentException: значение не может быть нулевым или пустым.Имя параметра: имя.Что я делаю неправильно ?Спасибо за помощь

@model IEnumerable<NHibernateFluentProject.Patient>

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

Ответы [ 2 ]

6 голосов
/ 03 марта 2011

@Html.ListBoxFor используется для вашей строго типизированной модели представления.что может помочь привязать к вашей собственности.Первая часть будет принимать лямбда-выражение для одного элемента в качестве значения по умолчанию, выбранного для вашего списка, вторая часть будет принимать коллекции элементов для отображения всех элементов списка.Например: у вас есть два следующих класса.

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"));
0 голосов
/ 24 февраля 2011

Вам необходимо передать лямбда-выражение, содержащее свойство для привязки списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...