L'accès Contrôleur variable en Vue MVC
J'ai commencé à utiliser MVC et j'ai mis en place un projet simple qui a un contrôleur de renvoie une valeur à partir d'entity FrameWork. J'ai un contrôleur pour la page d'index qui d'installation de visual studio en tant que par défaut dans son modèle.
Je suis en espérant que cette valeur sera retournée à la page d'index du site.
Contrôleur de code
MISEntities db = new MISEntities();
public ActionResult Index()
{
ViewBag.Message = "Real Time Production";
var scrap = from r in db.tbl_dppIT
select r.CastGood;
return View(scrap);
}
Comment puis-je accéder à la var de la ferraille à l'aide de rasoir?
J'ai regardé le viewbag méthode et d'autres syntaxe razor, mais ne peux pas l'air de trouver comment je accéder à cet élément.
Vous devez vous connecter pour publier un commentaire.
Simplement parce que le contrôleur de la variable est déclarée à l'aide de la
var
mot-clé ne veut pas dire qu'il n'a pas un type. Plutôt, cela dit C# que le type doit être déduit par son contexte (dans ce cas, unIEnumerable<T>
quel que soit le typetbl_dppIT.CastGood
est).Donc, les trois autres réponses sont en partie correcte, vous devez définir le type de modèle transmis dans les Visionner via le rasoir mot-clé
@model
comme indiqué par les autres réponses:Il existe une alternative pour les trois réponses déjà précisé, et c'est de coller le
scrap
variable dans leViewBag
dans votre contrôleur:Lorsque vous accédez à la propriété expando
Scrap
de laViewBag
dans la vue, il sera un objet dynamique, de sorte que vous ne sera pas obtenir de l'aide de l'IntelliSense. Mais, c'est une autre façon, juste pour que vous sachiez toutes les possibilités.Mise à JOUR:
En fonction de vos commentaires ci-dessous, il semble comme si CastGood est une colonne de base de données qui est autorisé à être nulle et dont le type est
int
, alors vous voulez:HTH.
1[System.Nullable
1[Système.Int32]]", mais ce dictionnaire nécessite un élément de modèle de type "Système".Les Collections.Génériques.IEnumerable`1[MvcApplication1.Modèles.tbl_dppIT]'.@model MvcApplication1.Models.tbl_dppIT
. C'est peut-être déjà unIEnumerable<T>
de EF (ou quelle que soit la PLATEFORME que vous utilisez).1[System.Nullable
1[Système.Int32]]", mais ce dictionnaire nécessite un élément de modèle de type " MvcApplication1.Modèles.tbl_dppIT'.scrap
variable dans votre contrôleur. Quel que soit ce type est, c'est ce type de votre@model
doit être. Soit ça, ou utiliser leViewBag
--mais encore une fois, sans prise en charge IntelliSense puisque c'est undynamic
.@model
doit être de typeIEnumerable</* type of CastGood /*>
puisque c'est ce qui est retourné par la requête LINQ réglagescrap
dans votre contrôleur. Donc, siCastGood
est unint
, puisIEnumerable<int>
. SiCastGood
est un objet concret, alorsIEnumerable<CastGood>
, etc.1[System.Nullable
1[Système.Int32]], Mais sa recherche de ce Système.Les Collections.Génériques.IEnumerable`1[Système.Int32]Vous devez déclarer le type de la variable ferraille comme le modèle à l'intérieur de la Vue à l'aide de la
@model
mot-clé.Voir Partie 3: le point de Vue et Viewmodel de la MVC Music Store exemple.
Vous devez fortement du type de votre point de vue et il ne sera disponible que le Modèle de l'instance.