У меня есть постоянно меняющийся список отраслей, из которых я бы хотел, чтобы пользователь выбирал при создании нового опроса.
Я мог бы сделать это с помощью ViewModel или ViewBag (я думаю).Я пытаюсь сделать это с ViewBag.Получение ошибки DropDownListFor:
CS1928 HtmlHelper<Survey>
не содержит определения для DropDownListFor
, а лучшая перегрузка метода расширения SelectExtensions.DropDownListFor<TModel, TProperty>(HtmlHelper<TModel>, Expression<Func<TModel, TProperty>>, IEnumerable<SelectListItem>, object)
имеет некоторые недопустимые аргументы 2_Views_Surveys_Create.cshtml
Модель опроса с внешним ключом для промышленности:
public class Survey
{
[Key]
public int id { get; set; }
[Display(Name = "Survey Name")]
public string name { get; set; }
[Display(Name = "Industry")]
public int industryId { get; set; }
[ForeignKey("industryId")]
public virtual Industry industry { get; set; }
}
Контроллер для загрузки списка отраслей промышленности в ViewBag:
// GET: Surveys/Create
public ActionResult Create()
{
ViewBag.Industries = new SelectList(db.industry, "Id", "Name");
return View();
}
Создание представления:
<div class="form-group">
@Html.LabelFor(model => model.industryId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.industryId, ViewBag.Industries, "-Select Industry-")
@Html.ValidationMessageFor(model => model.industryId, "", new { @class = "text-danger" })
</div>
</div>