Hvordan kan det være at jeg ikke kan hive indhold i liste

Tags:    mvc

Hej Udvikleren.


Det er sådan at jeg er i gang med at kaste mig over MVC.

Det som jeg skal have den til at gøre: det er at den skal hente min to stk ind i packages tablen. ude på en liste hvor jeg der efter skal fremvise det på html delen. (Ved godt at jeg skal smide det i en foreach),

Jeg har prøvet flere eks på hvordan jeg kun løse det.

Sådan som jeg har det nu giver den mig igen fejl, men tager jeg ToString() væk fra ToList. så kommer den frem og fortæller mig:

Cannot implicitly convert type 'System.Collections.Generic.List<MentorOrdblind_MVC.Models.Linq.Package>' to 'string'

Undervisningcontroller.cs
Fold kodeboks ind/udCSharp kode 



Model: Undervisning.cs
Fold kodeboks ind/udCSharp kode 


Index.cshtml
Fold kodeboks ind/udHTML kode 


Hvad er det jeg gøre forkert?, Jeg vil rigtig gerne lærer MVC, men jeg synes det er svært. men igen nu man første for det lært så kan man det!

Håber du kan hjælpe mig.



6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hvorfor bruger du toList?



Fordi jeg skal hente noget information ud fra table to gange, og brugere Linq til at gøre det med.



men hvad hiver du ud af data, jeg kan forestille mig det er en liste af packages, men du tager ikke den enkelte package og laver toString, så vidt jeg kan se er det alle packages du kalder toString på ?

Men hvis jeg misforstår er der vel ingen grund til først at lave toList og efterfølgende toString. Kan du ikke bare kalde toString til at starte med ?



men hvad hiver du ud af data, jeg kan forestille mig det er en liste af packages, men du tager ikke den enkelte package og laver toString, så vidt jeg kan se er det alle packages du kalder toString på ?

Men hvis jeg misforstår er der vel ingen grund til først at lave toList og efterfølgende toString. Kan du ikke bare kalde toString til at starte med ?


Hvis jeg gøre det sådan her:

Fold kodeboks ind/udCSharp kode 


Så for jeg fejl som siger: Cannot implicitly convert type 'System.Collections.Generic.List<TestOrdblind_MVC.Models.Linq.Package>' to 'string'

og laver jeg så med Tostring så vil den gerne...

Men laver jeg det her sådan her:

Fold kodeboks ind/udCSharp kode 


og så sådan her inde ved index.cshtml:

Fold kodeboks ind/udHTML kode 


Så får jeg denne her fejl som kan ses her på billedet



Hvad indeholder packages?

Du får sandsynligvis den fejl fordi du ikke har nogen enumerator til at håndtere det du får fra databasen.
Problemet er at din model jo nok er ret kompleks pga. din struktur i databasen med afhængigheder og andet, som modellen jo ikke tager hensyn til ude på klienten.

Hvis jeg var dig ville jeg lave en præsentationsobjekt til din side, og så løbe dine packages igennem, og oprette præsentationsobjekter med de properties og værdier du skal bruge (som du sætter fra packages) og så præsenterer.

Hvis du så laver at dit præsentationsobjekt kun har strings, så laver du større fejlhåndtering til at få noget præsenteret på din side. Det er altid nemmere at få en side frem og der så mangler nogle data forskellige steder og finde fejlen, end at den fejler inden og man ikke helt ved hvor fejlen så måske ligger.



Hej Jesper,

Har du i dit view definieret at din model er en liste?

Prøv at tage et kig på dette: http://weblogs.asp.net/scottgu/asp-net-mvc-3-new-model-directive-support-in-razor

Edit:
Du prøver at at sætte din Liste på en property af typen string, hvilket man ikke kan.




Indlæg senest redigeret d. 23.07.2015 18:21 af Bruger #6559
t