Ich verwende ASP.NET Core MVC RC2-Projekt mit "Database First Model". Die Datenbank ist die berühmte Northwind-Datenbank. Alles funktioniert gut, außer dass der „Select Tag Helper“ (ein HTML-Dropdown-Liste), die angeblich mit den ViewBag
Daten gefüllt wird, ist leer, obwohl die ViewBag
Daten nicht leer:Tag Helper Element auswählen ist leer, obwohl seine Datenquelle nicht
Die folgende Aktion Methode auf der CustomersController
zeigt korrekt die Liste aller Kunden:
public IActionResult Index()
{
List<Customers> data = repository.SelectAll();
return View("/views/Northwind/Index.cshtml", data);
}
Wenn ein Benutzer den Link „Bearbeiten“ auf einen Datensatz klickt, zeigt die folgende Edit
Aktion richtig, dass Rekordwerte in Formular bearbeiten der Ausnahme, dass in der Dropdown- für Länder ist leer:
public IActionResult Edit(string id)
{
Customers data = repository.SelectByID(id);
var query = (from c in repository.Context.Customers
orderby c.Country ascending
select new SelectListItem() { Text = c.Country, Value = c.Country }
).Distinct();
List<SelectListItem> countries = query.ToList();
ViewBag.Countries = countries;
return View("/views/Northwind/Edit.cshtml", data);
}
Das Folgende ist die „Ansicht“, dass die editierbaren Daten anzeigt der Ausnahme, dass in der Dropdown-leer:
@model MVCCoreCR2_Project.Models.Customers
<div class="form-group">
<label asp-for="Country" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="Country" asp-items="@ViewBag.Countries" class="form-control" />
<span asp-validation-for="Country" class="text-danger" />
</div>
</div>
Hinweis: Während das Debuggen, wenn ich einen Break- setzen zeigen Sie an <select asp-for="Country" asp-items="@ViewBag.Countries" class="form-control" />
und schweben Sie über @ViewBag.Countries
Ich kann sehen, dass die Länder in der ViewBag ausgefüllt sind.
Versuchen using'@Html.DropDownListFor (Modell => model.selectedCountry, IEnumerable) ViewBag.Countries, neue {@ Klasse = "form-control"}) sein ' –
Bitte verwenden Beim nächsten Mal das richtige Tag. [tag: asp.net-mvc] ist für den Legacy ASP.NET MVC Webstack (MVC 1 bis 5). Für ASP.NET Core verwenden [Tag: asp.net-core-mvc] – Tseng