.net MVC en passant linq données de contrôleur pour afficher
Je suis en train de transmettre des données de contrôleur de vue. J'ai cherché sur le web mais ne pouvait pas trouver une solution.
si je fais cela, ça fonctionne:
Contrôleur:
var yyy = (from a in Connection.Db.Authorities select a) ;
ViewBag.data = yyy;
Vue:
@foreach(var item in ViewBag.data)
{
@item.Value
}
Mais le code suivant ne fonctionne pas:
Contrôleur:
var yyy = (from a in Connection.Db.Authorities select new {Value = a.Value, TypeCode = a.TypeCode, Return = Calculate(a.Return)}) ;
ViewBag.data = yyy;
Vue:
@foreach(var item in ViewBag.data)
{
@item.Value
}
Elle donne "un article ne contient pas de définition de la Valeur" pour le fichier de vue.
Toute aide serait super.
Merci.
-édition: mise à jour de la deuxième contrôleur de requête linq. et corrigé le premier contrôleur de requête linq.
En fait, je ne comprends pas pourquoi votre premier le code fonctionne. Qui ressemble à de l'affichage de
vous avez raison, le premier code ne fonctionne pas. la mise à jour maintenant...
a.Value.Value
pour chaque a
.vous avez raison, le premier code ne fonctionne pas. la mise à jour maintenant...
OriginalL'auteur isa | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
C'est parce que Vous avez déjà sélectionné
Value
etValue
n'a pas de biensValue
. Vous devriez changer de contrôleur:var yyy = (from a in Connection.Db.Authorities select a.Value);
àOU modifier l'affichage à
////////////////////////////////////////////////MODIFICATIONS ////////////////////////////////////////////////
Que Vous ne devriez pas utiliser objet anonyme. Vous devez créer
ViewModelClass
. Par Exemple:Et de changer votre contrôleur:
et à votre avis, vous serez en mesure d'utiliser:
Aussi, j'ai une question pour Vous. Pourquoi utilisez-Vous
ViewBag
pour transmettre des données de contrôleur de point de vue? Pourquoi n'utilisez-Vous pas de Modèle de transmettre ces données à afficher selon le modèle MVC?////////////////////////////////////////////////PLUS DES MODIFICATIONS ////////////////////////////////////////////////
Pour envoyer plus d'un résultat de requête Vous pouvez créer des modèle plus complexe. Par exemple:
Et changer de contrôleur:
et d'affichage vous pouvez utiliser:
voir mes modifications.
Oui Dmytro, vous avez raison, cela fonctionne maintenant. Merci beaucoup... Le problème est, comme vous l'avez dit, je doit créer un viewmodelclass. Et, pour répondre à votre question, je veux vous envoyer plus d'un résultat de requête pour afficher, donc je suis en utilisant ViewBag au lieu de Modèle.
Pour envoyer plus d'un résultat de requête Vous pouvez créer des modèle plus complexe. Voir, par exemple, ma plus des modifications.
c'est exactement ce que je recherchais. Je vous remercie beaucoup. Vous avez clairement défini tout ce qui est nécessaire.
OriginalL'auteur Dmytro
utiliser qqch comme ça
ViewBag.qualification = new SelectList(db.Les recherches.Où(x => x.lookup_type == "Qualification"), "lookup_content", "lookup_content");
OriginalL'auteur