2012-07-20 2 views
0

Это раздражает меня. Он отлично работает на нагрузке, и если я заполню форму и отправлю ее. Если, однако, я не обновляю никакие значения, следовательно, должен генерировать ошибки проверки из-за нулевых значений, он показывает следующую ошибку.MVC - нет элемента ViewData типа «IEnumerable», который имеет ключ «*******»

  • $ исключения { "Там нет ViewData элемента типа 'IEnumerable', который имеет ключ 'TenantType'."} {System.Exception System.InvalidOperationException}

Ошибка верна, то это не viewdata с тем же именем, что и выпадающее меню. Выпадающие родословные являются общими, поэтому я поделился ими, т.е. у некоторых есть Да/Нет. Почему он запрашивает viewdata с тем же именем, что и элемент управления, когда я четко указываю на что-то еще?

Просмотр Extract

<div class="editor-field"> 
    @Html.DropDownList("TenantType", ViewData["list7"] as SelectList) 
    </div> 
    @Html.ValidationMessageFor(model => model.TenantType) 

Контроллер Extract

 var list7 = new SelectList(new[] 
             { 
              new {ID="",Name="Please Select"}, 
              new {ID="Professional",Name="Professional"}, 
              new {ID="Student",Name="Student"}, 
              new {ID="DSS Family",Name="DSS Family"}, 
              new {ID="DSS Individuals",Name="DSS Individuals"}, 
              new {ID="Local Authority",Name="Local Authority"}, 
              new {ID="Holiday Home",Name="Holiday Home"}, 
              new {ID="Asylum Seekers",Name="Asylum Seekers"}, 
             }, "ID", "Name", 1); 
     ViewData["list7"] = list7; 
  • $ исключение { "Там нет ViewData элемент типа 'IEnumerable', который имеет ключ 'TenantType'."} Системы. Исключение {System.InvalidOperationException}

ответ

0

Проверьте эту ссылку

ViewBag/ViewData Lifecycle

Вы установили ViewData [ "песни7"] еще раз, после того, как модель недопустимыми действия контроллера?

+0

Спасибо, я не изначально, но я сделал это как часть проблемы. Это не имело большого значения. Я считаю, что у меня есть это правильно, поскольку оно используется в другом месте моего кода. Это может быть красная селедка, но тот факт, что поиск ключа с тем же именем, что и модель, кажется первопричиной? Этот список не существует и не указан нигде в моем коде. Я не хочу обходиться с этим путем создания списков для каждого элемента модели, поскольку это дублирует так много. –