2017-09-10 3 views
-1

C'est ma méthode d'action, classe de modèle, et vue quand je cours l'erreur de code vient: instruction foreach ne peut pas fonctionner sur des variables de type «login.Models.Member1» parce que ' login.Models.Member1 'ne contient pas de définition publique pour' GetEnumerator. Aidez-moi, s'il vous plaît !!.Je veux afficher mes données de table dans la vue (MVC)

public ActionResult Details(Member1 mem) 
{ 
    var name = mem.Name; 
    var age = mem.Age; 
    var sex = mem.Sex; 
    var fees = mem.Fees; 
    OracleConnection connection = new OracleConnection(); 
    connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionDHC"].ToString(); 
    connection.Open(); 
    OracleCommand command = connection.CreateCommand(); 
    string sql = "SELECT * FROM MEMBER"; 
    command.CommandText = sql; 
    return View(); 
} 

Mon modèle:

public class Member1 
{ 
    public String Name { get; set; } 
    public String Age { get; set; } 
    public String Sex { get; set; } 
    public String Fees { get; set; } 
} 

Vue:

@model login.Models.Member1 

@{ 
    ViewBag.Title = "Details"; 
    Layout = null; 
} 
<table> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Age</th> 
      <th>Sex</th> 
      <th>Fees</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model) 
     { 
      <tr> 
       <td>@item.Name</td> 
       <td>@item.Age</td> 
       <td>@item.Sex</td> 
       <td>@item.Fees</td> 
      </tr> 
     } 
    </tbody> 
</table> 
+0

Vous avez plusieurs erreurs - votre point de vue doit être '@model IEnumerable ' - soit une collection . Mais alors vous devez passer un modèle à la vue - 'return View (model);' dans le contrôleur - mais pas où avez-vous déjà initialisé un modèle et votre code n'exécute même pas votre 'command'. Et votre paramètre 'Member1 mem' dans la méthode n'a aucun sens. –

Répondre

0

Vous faites des erreurs. Il faut d'abord exécuter la commande et l'initialiser;

var = résultat command.executeNonQuery() ou Command.ExecuteReader() // son été âges je lui ai donné utilisé ce

que vous lui avez donné revenir à vous voir, en utilisant cette

Voir le retour (var);

donc mes suggestions changements are`

public ActionResult Details(Member1 mem) 
{ 
    var name = mem.Name; 
    var age = mem.Age; 
    var sex = mem.Sex; 
    var fees = mem.Fees; 
    OracleConnection connection = new OracleConnection(); 
    connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionDHC"].ToString(); 
    connection.Open(); 
    OracleCommand command = connection.CreateCommand(); 
    string sql = "SELECT * FROM MEMBER"; 
    command.CommandText = sql; 
    var result = command.executeNonQuery() //or reader just make sure you 
    //make sure you get result in result variable 
    // than send it to view 
    return View(result); 
} 

tout va bien