MVC 4 - Comment retourner une linq to entité résultat de la requête dans une vue
En utilisant le code suivant dans mon Index de contrôleur de l'action, j'essaie d'afficher les 2 champs contenus dans un rasoir vue:
public class MyController : Controller
{
private MyEntities db = new MyEntities();
public ActionResult Index()
{
IEnumerable<Prod> signatures = from Prod in db.Products
select new Prod(Prod.ProductID, Prod.ProductName);
}
}
Précédemment, j'ai créé une classe dans le dossier de modèles et l'a nommé "Prod":
public class Prod
{
public int ProductID { get; set; }
public string ProductName { get; set; }
}
Mais quand je lance le projet que je tombe dans l'erreur suivante:
MyProject.Controllers.MyController.Index()
pas tous les chemins de code de retour d'une valeur
Toute aide, s'il vous plaît ?
de retour de Vue(signatures) est normalement utilisé, il suffit d'afficher la vue dans votre question.
Un excellent endroit pour commencer est asp.net/mvc
bien noté, merci.
Un excellent endroit pour commencer est asp.net/mvc
bien noté, merci.
OriginalL'auteur Sami-L | 2013-03-07
Vous devez vous connecter pour publier un commentaire.
Sami-L, votre Prod, la classe n'spécialisé constructeur, c'est un constructeur qui accepte des valeurs d'initialisation. Votre action doit être quelque chose comme ceci:
Note les accolades "{" au lieu de "(" accolades. Cela devrait aider à résoudre le constructeur d'erreur qui vous obtenez.
Mise à JOUR: j'ai renommé un paramètre dans votre requête LINQ de
Prod
àp
. À l'aide de Prod spécifié fait compilateur pense que votre ProductID et ProductName ont des propriétés statiques. En renommant le paramètre aprèsfrom
cela devrait aider à résoudre le problème.De vérifier ma mise à jour de la section.
C'est ça @Husein, Merci beaucoup.
OriginalL'auteur Husein Roncevic
Je pense que vous êtes tout simplement disparu de la
return
déclaration.Ajouter un constructeur sans paramètre de votre
Product
entité (vous pouvez le faire protégée si vous ne voulez pas exposer)le retour des signatures retourne un objet de type IEnumerable<Prod> et non pas un objet qui hérite de ActionResult.
merci, j'ai corrigé la réponse.
vous êtes les bienvenus. Jusqu'vote!
OriginalL'auteur Davin Tryon
Il vous manque de l'
return
élément. Vous aurez besoin de mettre cela dans uneView
de sorte que votre Indice de rasoir vue sera transmis à la Prod liste.Dans l'Index.cshtml vous pouvez également déclarer le modèle, de sorte que le point de vue est fortement typé, c'est à dire
OriginalL'auteur mickfold