Я новичок в С # и пытаюсь создать простое веб-приложение MVC /// Это create.cshtml
<div class="form-group">
@Html.LabelFor(model => model.MembershipID, "MembershipID", htmlAttributes: new
{ @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("items",ViewData["items"] as IEnumerable<SelectListItem>, new { @class
= "form-control" })
@Html.ValidationMessageFor(model => model.MembershipID, "", new { @class = "text-danger"
})
</div>
</div>
И это мой ученик контроллер
public ActionResult Create()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem { Text = "Day", Value = "0" });
items.Add(new SelectListItem { Text = "Month", Value = "1" });
items.Add(new SelectListItem { Text = "Direct-Debit", Value = "2" });
items.Add(new SelectListItem { Text = "Other", Value = "3" });
ViewData["MembershipID"] = items;
return View();
}
[HttpPost]
public ActionResult Create(Student student) {
try { // TODO: Add insert logic here
using (BlackBeardDBEntities db = new BlackBeardDBEntities()) {
db.Students.Add(student);
db.SaveChanges();
}
return RedirectToAction("Index");
} catch {
return View();
}
}
3 ответа
Пара вещей:
Как уже упоминалось в комментариях, замените ViewData["MembershipID"] = items;
на ViewData["items"] = items;
в своем методе Controller
Во-вторых: вам нужно отобразить элемент selectlist
как:
@Html.DropDownList("items",ViewData["items"] as List<SelectListItem>, new { @class="form-control" })
ViewData["items"]
не объявлен в контроллере. Для доступа к этим данным вам необходимо изменить
@Html.DropDownList("items",ViewData["items"]
Чтобы
@Html.DropDownList("items",new SelectList((IEnumerable<SelectListItem>) ViewData["MembershipID"])
В вашем контроллере вы объявляете ViewData как ViewData ["MembershipId"] , и, по вашему мнению, вы используете ViewData ["items"] , что неправильно. Убедитесь, что ключ вашего ViewData одинаков в обоих случаях. В контроллере замените ViewData ["MembershipId"] на ViewData ["items"]. Кроме того, вы сохраняете данные в viewdata как Список и используете в качестве IEnumerable . Внесите в него изменения, а затем попробуйте построить.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.