2017-10-06 3 views
0

J'ai vue Index. En mode Index, j'ai le menu déroulant html et table. Je veux remplir la liste déroulante par modèle de travail et table du modèle de l'entreprise. J'ai utilisé la requête Join qui me donne le résultat requis. Mais je ne sais pas comment transmettre des données pour les afficher et les afficher..net MVC afficher le résultat dans la vue de la requête de jointure

Voici la classe Mon modèle de travail.

 public class Job 
{ 

    public List<Job> joe { get; set; } 

    [Required] 

    public string id { get; set; } 

    [Required] 

    public string job_title { get; set; } 

    [Required] 

    public string job_description { get; set; } 

    [Required] 

    public string company_id{ get; set; } 


    } 

Voici ma société Classe de modèle.

public class Company 
    { 
    public List<Company> jo { get; set; } 

    [Required] 

    public string id { get; set; } 


    [Required] 

    public string name { get; set; } 

    [Required] 

    public string address { get; set; } 

}

Ma fonction de contrôleur est.

 public ActionResult ViewData (string id) 
    { 
     TempData["data"] = id; 

     SqlDataReader dr; 

     SqlConnection con = new SqlConnection("xxxxxxxx"); 
     SqlCommand cmd = new SqlCommand(); 
     con.Open(); 
     cmd.CommandText = "SELECT name,address,job_title FROM Company JOIN 
     JOIN Jobs on Jobs.id=Company.id where Jobs.company_id='" + id + "'"; 

     cmd.Connection = con; 



     var model = new List<Company>(); 
     try 
     { 
      dr = cmd.ExecuteReader(); 
      // giving me Required result but how to pass required result to 
      //single view as I ma getting data from two tables 

      while (dr.Read()) 
      { 

       var candidates = new Company(); 

       candidates.name = dr[0].ToString(); 
       candidates.address = dr[1].ToString(); 
       candidates.job_title= dr[2].ToString(); 
       candidates.job_description= dr[3].ToString(); 


       model.Add(candidates); 
      } 
     } 

     catch (Exception es) 
     { 
      throw es; 
     } 

     finally 
     { 

      con.Close(); 
     } 

     return View(model); 

     } 

Et moi pour afficher les données dans le tableau est

 @model IEnumerable<Models.Company> 

     <table id="movie" class="table table-striped"> 
     <thead>      
     <tr> 
     <th>Name</th> 
        <th>Address</th> 

      </tr> 
     </thead> 
     <tbody> 
       @foreach(var j in Model) 
       { 
        <tr> 
         <td>@Html.DisplayFor(modelItem => j.name)</td> 
         <td>@Html.DisplayFor(modelItem => j.address)</td> 
         </td> 
        </tr> 

       } 

      </tbody> 
      <div> 

      </div> 
      </table> 

et mes données liste déroulante est

  @foreach(var j in Model) 
       { 
        // drop down to show job_title 

       } 

entreprise montre dans le tableau, mais comment pour afficher les données de modèle en baisse vers le bas.

Répondre

0

J'ai modifié quelques parties de votre requête .changez le nom de la méthode d'action à Index. C'est la partie modifiée de la méthode d'action.

 cmd.CommandText = "SELECT name,address,job_title FROM Company JOIN Job on Job.COMPANY_ID = Company.id where Job.company_id = '" + id + "'"; 
     cmd.Connection = con; 

     var model = new List<Company>(); 
     try 
     { 
      dr = cmd.ExecuteReader(); 
      List<SelectListItem> list = new List<SelectListItem>(); 
      // giving me Required result but how to pass required result to 
      //single view as I am getting data from two tables 
      while (dr.Read()) 
      { 
       var candidates = new Company(); 
       candidates.name = dr[0].ToString(); 
       candidates.address = dr[1].ToString(); 
       candidates.job_title = dr[2].ToString(); 
       list.Add(new SelectListItem { Selected = true, Text = dr[2].ToString(), Value = dr[2].ToString() }); 
       model.Add(candidates); 
      } 

      ViewBag.jobList = list; 

     } 

La partie View.

@foreach (var j in Model) 
    { 
     <tr> 
      <td>@Html.DisplayFor(modelItem => j.name)</td> 
      <td>@Html.DisplayFor(modelItem => j.address)</td>  
      <td>@Html.DropDownList("jobList")</td> 
     </tr> 
    } 

Il existe de nombreux autres moyens. mais je l'ai fait en ce qui concerne la simplicité du but.

+0

D'où liste.Add vient.elle n'existe pas dans le contexte actuel – raja

+0

ok je l'ai eu.Merci – raja

+0

répondre sahi lage pour corriger mark kar dena thora. – Saronyo