Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Ошибка при передачи данных из Html.DropDownListFor

#html #c_sharp #aspnet_mvc #razor

                    
Мне необходимо отобразить из БД в раскрывающий список ФИО, у которых столбец SubjectCode
равен 1.

Ege15VM.cs

namespace WebApplication1.Models
{
    public class Ege15VM
    {
        public IEnumerable Participants { get; set; }
        public string Participant { get; set; }

        public Ege15VM()
        {
            cokoEntitiesWAN dataContext = new cokoEntitiesWAN();
            Participants = from a in dataContext.ege_15_res_before
                           where a.SubjectCode == 1
                           select new SelectListItem
                           {
                              Text = a.surname + " " + a.name,
                              Value = a.ParticipantID,
                              Selected = false
                           };
        }
    }
}


Ege15.cshtml

@model WebApplication1.Models.Ege15VM

    @using (Html.BeginForm())
    {        
            Фамилия, Имя участника: @Html.DropDownListFor(x => x.Participant, Model.Participants)

        

} HomeController.cs [HttpGet] public ActionResult Ege15() { var model = new Ege15VM(); return View(model); } [HttpPost] public ActionResult Ege15(Ege15VM model) { return View(); } Представление нормально отображается и раскрывающий список содержит необходимые ФИО. Но если нажать на "Сформировать отчет", т.е. вызвать POST, выскакивает ошибка: Ссылка на объект не указывает на экземпляр объекта Сообщение ссылается на строку Фамилия, Имя участника: @Html.DropDownListFor(x => x.Participant, Model.Participants)


Ответы

Ответ 1



Вот эта строчка: return View(); возвращает View, который будет отрендерен на основе ModelData - данных, переданных от клиента. model при этом будет null. замените ее на return View(model);

Комментариев нет:

Отправить комментарий