ASP.NET MVC comment lier modèle personnalisé pour afficher
Je voudrais lier un tableau de données à afficher dans le ASP.NET MVC, comment puis-je le faire?
désolé de ne pas clair sur ma question.
Maintenant, j'ai créer un objet personnalisé(pas de tableau), j'ai essayé de le passer à la Vue, mais l'erreur montre
"L'élément de modèle adopté dans le dictionnaire est de type 'ContactView" mais ce dictionnaire nécessite un élément de modèle de type "Système".Les Collections.Génériques.IEnumerable"
Eric, le message d'erreur est le fait de dire exactement ce qui est mal. Vous êtes de passage à un objet personnalisé (pas un tableau), mais il attend un générique collection d'objets.
OriginalL'auteur Smallville | 2009-05-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le ViewData[], mais la meilleure façon serait de créer une classe d'affichage et de retour que.
Donc, disons que la vue que vous souhaitez envoyer des données est appelé Contacts. Créer une nouvelle Vue de la classe et de retour que. ainsi, au lieu de cela:
Vous pouvez obtenir fortement typées points de vue en faisant ceci:
Puis dans la vue, vous pouvez être fortement typé en acceptant les objets de type ContactsView. De cette façon, dans le réel, qu'il hérite de la sorte:
Qui vous permet d'appeler votre tableau comme...
contrairement à ce:
Dans ce cas, vous voudrez probablement pour vérifier si il est pas null, etc. L'avantage de ceci est que si vous refactoriser il est beaucoup plus facile. Sans parler de la facilité et de sécurité, du type d'utilisation d'objets fortement typés.
Il semble que lorsque vous avez créé la page, vous dit-il à être fortement typé d'un certain type de IEnumerable (c'est à dire une liste, dictionnaire, etc). Quelle est la première ligne de votre point de Vue dire? Il devrait être quelque chose comme <% Page="... ... " Inherits="le Système de.Web.MVC.ViewPage<ContactsView>" ... />. Il me semble qu'il a probablement l'attribut hériter de faire quelque chose comme: Inherits="le Système de.Web.MVC.ViewPage<IEnumerable<quelque chose>>"
+1 C'est vraiment une bonne description. C'est le seul exemple que j'ai vu qui montre clairement que toutes les conventions.
Ok, disons que ContactsList contient des objets avec 2 champs "Nom" et "Count". Comment l'acces via la Vue ?
OriginalL'auteur MunkiPhD
Le mettre dans le ViewData, et de l'utiliser pour ... chaque boucle à travers elle?
OriginalL'auteur Chrisb
Regardez ce lien: http://nerddinnerbook.s3.amazonaws.com/Part6.htm
Fondamentalement, vous pouvez charger le tableau dans un viewdata objet, et de l'utiliser comme vous le souhaitez.
OriginalL'auteur Bravax