Я новичок в С # и пытаюсь создать простое веб-приложение 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(); 
     } 
}
-2
Ichigo Kurosaki 3 Фев 2020 в 14:46

3 ответа

Лучший ответ

Пара вещей:

Как уже упоминалось в комментариях, замените ViewData["MembershipID"] = items; на ViewData["items"] = items; в своем методе Controller

Во-вторых: вам нужно отобразить элемент selectlist как:

@Html.DropDownList("items",ViewData["items"] as List<SelectListItem>, new { @class="form-control" })
2
Rahul Sharma 3 Фев 2020 в 12:17

ViewData["items"] не объявлен в контроллере. Для доступа к этим данным вам необходимо изменить

@Html.DropDownList("items",ViewData["items"] 

Чтобы

@Html.DropDownList("items",new SelectList((IEnumerable<SelectListItem>) ViewData["MembershipID"])
0
Athanasios Kataras 3 Фев 2020 в 12:10

В вашем контроллере вы объявляете ViewData как ViewData ["MembershipId"] , и, по вашему мнению, вы используете ViewData ["items"] , что неправильно. Убедитесь, что ключ вашего ViewData одинаков в обоих случаях. В контроллере замените ViewData ["MembershipId"] на ViewData ["items"]. Кроме того, вы сохраняете данные в viewdata как Список и используете в качестве IEnumerable . Внесите в него изменения, а затем попробуйте построить.

0
pratham thakur 3 Фев 2020 в 12:13