У меня есть довольно простая проблема, решение которой я не могу найти.
Учитывая следующую модель:
public class InfoViewModel
{
public SelectList States { get; set; }
[DisplayName("State")]
public string State { get; set; }
}
На мой взгляд, отлично работает следующее:
@Html.DropDownListFor(m => m.State, Model.States)
Однако, если я попытаюсь вставить это в шаблон редактора (с именем «SelectList»), например:
@model System.String
@Html.DropDownListFor(m => m, ViewData["selectList"])
А затем используйте EditorFor
для создания выпадающего списка:
@Html.EditorFor(m => m.State, "SelectList", new { selectList = Model.States })
Это не удается со следующей ошибкой:
'System.Web.Mvc.HtmlHelper<string>' does not contain a definition for
'DropDownListFor' and the best extension method overload
'System.Web.Mvc.Html.SelectExtensions.DropDownListFor<TModel,TProperty>
(System.Web.Mvc.HtmlHelper<TModel>,
System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>,
System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>)'
has some invalid arguments
Мне трудно понять разницу между этими двумя. Я пробовал различные обходные пути для устранения неполадок, и либо получаю ту же ошибку, либо что-то еще.
Заранее спасибо.