2017-10-06 2 views
0

私はビューのインデックスを持っています。インデックスビューでは、htmlドロップダウンとテーブルがあります。私は、ジョブモデルとテーブルを企業モデルからドロップダウンしたものにします。私は、私に必要な結果を与えるJoinクエリを使用しました。しかし、私はドロップダウンと表を表示し、表示するためにデータを渡す方法を知らない。.net MVCの結果を表示します。

ここはMy Job Modelクラスです。

 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; } 


    } 

私の会社のモデルクラスです。

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; } 

}

マイコントローラ関数です。

 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); 

     } 

、テーブル内のデータを表示するために私の見解は

 @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> 

で、ダウン私のドロップが

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

       } 

企業データを表に示すが、どのようにドロップでモデルのデータを示すようになっていますダウン。

答えて

0

クエリの一部を変更しました。アクションメソッド名をIndexに変更してください。これはアクションメソッドの変更部分です。

 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; 

     } 

ビューの部分。

@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> 
    } 

他にも多くの優れた方法があります。私は目的の簡潔さに関してそれをしました。

+0

ここからlist.Addが来ています。現在のコンテキストには存在しません。 – raja

+0

よろしくお願いします。ありがとうございます。 – raja

+0

は、マーク・カール・デナ・トーラを修正するためにサヒ・レイジに答えます。 – Saronyo

関連する問題