2016-06-28 61 views
-1

這裏是我的視圖模型視圖: -傳遞到字典的模型項的類型爲「System.Collections.Generic.List`1 []」,但本詞典需要類型'的典範項目

@model _24By7CallAndBPOPvtLtd.Models.JobDetailandApplyModel 

           <table class="table table-striped"> 
           @foreach (var item in Model.jobdetail) 
           { 
            <tr> 
             <td> 
              @item.job_title 
             </td> 

             <td> 
              <a href="@Url.Action("Edit", new { id = item.Job_ID })"><i class="glyphicon glyphicon-pencil"></i></a> 
              <a href="@Url.Action("Delete", new { id = item.Job_ID })"><i class="glyphicon glyphicon-remove" style="color:red"></i></a> 
             </td> 
            </tr> 

           } 
         </table> 

         <table class="table table-striped"> 
          @foreach (var item in Model.jobapplied) 
          { 
         <tr> 
          <td> 
           @Html.DisplayFor(modelItem => item.User_Account.Full_Name) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.Job_Det.job_title) 
          </td> 

          <td> 
           <a href="/Content/CV/@item.User_CV.Cv_Path" target="_blank">Download</a> 
          </td> 

         </tr> 
         } 

         </table> 

這裏是我的控制器: -

public ActionResult Test1() 
     { 
       var jobs=db.Job_Det.ToList(); 
       return View(jobs); 
     } 
public ActionResult Test2() 
     { 
      db.Job_Applied.ToList(); 
       return View("Test1"); 
     } 

這裏是我的視圖模型: -

public class JobDetailandApplyModel 
    { 
     public IEnumerable<Job_Det> jobdetail { get; set; } 
     public IEnumerable<Job_Applied> jobapplied { get; set; } 
    } 

public partial class Job_Applied 
    { 
     public int JobApplied_ID { get; set; } 
     public int Employeer_ID { get; set; } 
     public int Job_ID { get; set; } 
     public int User_ID { get; set; } 
     public Nullable<int> Cv_Id { get; set; } 
     public Nullable<int> status_Id { get; set; } 
     public System.DateTime date_applied { get; set; } 
     public Nullable<System.TimeSpan> time_applied { get; set; } 
     public string timestamp_applied { get; set; } 

     public virtual Employeer Employeer { get; set; } 
     public virtual Job_Det Job_Det { get; set; } 
     public virtual Status Status { get; set; } 
     public virtual User_CV User_CV { get; set; } 
     public virtual User_Account User_Account { get; set; } 
    } 

什麼是這個代碼的問題.IM傳遞兩個MOD? ELS使用視圖模型,我需要在一個視圖中顯示兩個列表一種觀點..

+0

您正在嘗試將您的列表分配給整個模型。您需要初始化模型,並將值分配給兩個列表中的每一個。 – Andrew

+0

您並未將列表傳遞給'Test2'方法中的視圖。 –

回答

1

嘗試

var jobs = db.Job_Det.ToList(); 

var jobApplied = db.Job_Applied.Include(x => x.Job_Det).ToList(); 

JobDetailandApplyModel model = new JobDetailandApplyModel() { 
    jobdetail = jobs, 
    jobapplied = jobApplied 

} 

return View(model); 

也,不知道這是否會有所作爲,但更換

@Html.DisplayFor(modelItem => item.Job_Det.job_title) 

@item.Job_Det.job_title 
+0

對象引用不設置到對象的實例,在該行.. **​​ @ Html.DisplayFor(modelItem => item.Job_Det.job_title) ** – Noor

+0

你確定你的數據庫返回的數據? –

+0

是,當我把debugger..both顯示計數 – Noor

0

您將需要正確初始化模型併爲這兩個屬性中的每個屬性賦值。控制器更改爲這樣的事情:

var model = new JobDetailAndApplyModel(); 
model.jobdetail = db.Job_Det.ToList(); 
model.jobapplied = db.Job.Applied.ToList(); 
return view(model); 

編輯:你有Test2的控制器將不會做太多,當你通過它像,它只是使用視圖具有名稱相同字符串的字符串。它沒有傳入任何模型,所以你會得到一個空引用錯誤。你需要像這樣做的一個工作:

return View("Test1", model); 

從上面使用其他代碼來創建模型對象。

+1

這或多或少是我放;) –

+0

是啊,看起來我們的都是打字同時。 – Andrew

+0

我仍然有空引用錯誤。 – Noor

0

你的觀點是期望類型的模型JobDetailandApplyModel

的Test1提供

類型的模型

名單< Job_Det>

的Test2沒有提供模型

相關問題