Im Voraus entschuldige ich mich, wenn ich etwas offensichtliches frage. Ich wechsle von regulären asp.net-Programmierung zu MVC und von vb zu C#. Es war in Ordnung, aber ich habe noch viel zu lernen.kann nicht implizit konvertieren Typ system.collections.generic.list
Ich erhalte die folgenden Fehler
kann nicht implizit Typ System.Collections.Generic.List < project.models.state konvertieren>> < project.state System.Collections.Generic.List. eine implizite Konvertierung vorhanden ist (möglicherweise fehlt eine Guss?)
das ist, was ich in meinem Controller
public ActionResult CityForm()
{
var states= _context.Departamentos.ToList();
var viewModel = new CityFormViewModel
{
City= new City(),
States= states
};
return View();
}
Mein Ansichtsmodell sieht wie folgt aus
public IEnumerable<State> States{ get; set; }
public City City{ get; set; }
Ich habe sah in andere haben Post, die einen ähnlichen Fehler haben, aber es scheint, die Ursache ist etwas anderes als das, was ich habe. Ich habe diesen Ansatz zuvor in einer anderen Anwendung verwendet, und es hat gut funktioniert, was ich in diesem Fall anders gemacht habe, ist, dass ich ein ADO.NET-Entitätsdatenmodell hinzugefügt habe, das mit Telerik-Steuerelementen verwendet werden kann.
Ich habe auch bemerkt, dass in meiner anderen Anwendung, wenn ich die Variable in meinem Controller schweben ich folgende Meldung (zwischen ** ist, was ich mit der Maus über schweben):
States = **states**
(local variable)List<State> states
aber wenn ich an der gleichen Stelle in der Anwendung schweben, wo ich den Fehler erhalte ich eine andere Botschaft
States = **states**
(local variable)List<Models.State> states
wie Sie sehen können, ist mit Models Staat voran.
Ich schätze wirklich jede Hilfe, die ich bekommen kann. Vielen Dank.
'project.models.state' zuzuordnen ist nicht' project.state' (sie sind in verschiedenen Baugruppen sind). Ihre Ansichtsmodelleigenschaft muss 'public IEnumerable States {get; einstellen; } '- das gleiche wie Ihre Abfrage zurückgibt (und mit' var' aufhören!) –
Ich sehe kein Problem darin, wie er var verwendet. Er hätte den gleichen Compilerfehler bekommen, wenn er Var nicht benutzt hätte. Weil er var benutzt, muss er weniger Code reparieren. – bit2know
@ bit2know Ich denke, das Problem mit 'var' ist in diesem Fall offensichtlich: es macht es schwieriger, Typ-Mismatches zu sehen. –