Liste d'affichage dans une Vue MVC
J'essaie d'afficher la liste que j'ai faite dans ma vue, mais reçois : "L'élément de modèle adopté dans le dictionnaire est de type 'System.Les Collections.Génériques.Liste1[System.String]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1[Classement.Modèles.Les équipes de]'."
Mon Contrôleur:
public class HomeController : Controller
{
Teams tm = new Teams();
public ActionResult Index()
{
var model = tm.Name.ToList();
model.Add("Manchester United");
model.Add("Chelsea");
model.Add("Manchester City");
model.Add("Arsenal");
model.Add("Liverpool");
model.Add("Tottenham");
return View(model);
}
Mon modèle:
public class Teams
{
public int Position { get; set; }
public string HomeGround {get; set;}
public string NickName {get; set;}
public int Founded { get; set; }
public List<string> Name = new List<string>();
}
Mon point de vue:
@model IEnumerable<Standings.Models.Teams>
@{
ViewBag.Title = "Standings";
}
@foreach (var item in Model)
{
<div>
@item.Name
<hr />
</div>
}
Toute aide serait appréciée 🙂
Voulez-vous passer un collection d'équipes ou d'une liste de noms d'équipe (qui est ce que vous êtes de passage)?
Pourquoi une équipe de football de l'objet nommé
Essayez ma réponse ci-dessous. Votre modèle n'est pas mis en œuvre correctement.
Pourquoi une équipe de football de l'objet nommé
Teams
(au pluriel) et pourquoi une équipe de plusieurs noms? Je pense que vous avez besoin d'examiner attentivement votre modèle!Essayez ma réponse ci-dessous. Votre modèle n'est pas mis en œuvre correctement.
OriginalL'auteur FiF4M33sTeR | 2015-03-10
Vous devez vous connecter pour publier un commentaire.
Votre méthode d'action considère le type de modèle que
List<string>
. Mais, de votre point de vue vous êtes en attente pourIEnumerable<Standings.Models.Teams>
.Vous pouvez résoudre ce problème en changeant le modèle de votre point de vue à
List<string>
.Mais, la meilleure approche serait de retour
IEnumerable<Standings.Models.Teams>
comme un modèle à partir de votre méthode d'action. Alors vous n'avez pas à changer de type de modèle de votre point de vue.Mais, à mon avis, vos modèles ne sont pas correctement mises en œuvre. Je vous suggère de changer comme:
Alors vous devez changer votre méthode d'action:
Et, de votre point de vue:
model.Add(new Team() { Name = new List<string>() {"Manchester United" }});
(Name
est une collection)OP modèles sont un peu hors de la norme. Merci, j'ai mis à jour.
OP modèle n'a pas de sens à tous 🙂 je suppose
Name
devrait être typeofstring
pasList<string>
Tout à fait d'accord, j'ai donc mis à jour ma réponse.
merci beaucoup!
OriginalL'auteur Farhad Jabiyev
Vous êtes de passage à tort mode de visualisation. Votre point de vue est à la recherche pour
@model IEnumerable<Standings.Models.Teams>
et vous êtes de passage àvar model = tm.Name.ToList();
nom de la liste. Vous devez passer de la liste de Équipes.Vous devez passer modèle suivant
OriginalL'auteur Ajay P