В очень похожей заметке у меня была эта проблема с MVC3 / Razor, потому что я просматривал коллекцию модели в HTML. Я пытался использовать переменную цикла, и я получил эту ошибку. В моем случае решением было вернуться к модели, используя переменную цикла в моем запросе LINQ.
Мой цикл:
@foreach (BookField bookField in Model.BookFields)
Изменен первый параметр в @ Html.DropDownListFor с ...
bookField
Для того, чтобы ...
model => model.BookFields.First(q => q.BookFieldId == bookField.Id).Value
Полное утверждение теперь выглядит так:
@Html.DropDownListFor(model => model.BookFields.First(q => q.BookFieldID == bookField.Id).Value, new SelectList(ViewData[ddlKey] as Dictionary<string, string>, "Key", "Value", bookField.Value), "[select]")
Обратите внимание, я произвольно переименовал некоторые вещи для этого примера, так что это может не иметь большого логического смысла; Я просто надеюсь, что это имеет достаточно синтаксического смысла, чтобы помочь кому-либо еще с этой же проблемой:)