2016-06-28 65 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没有提供模型

相关问题