如何将联接数据传递到MVC中的视图

时间:2018-07-26 08:17:59

标签: asp.net-mvc entity-framework asp.net-mvc-4 entity

我是MVC的新手。在这里,我已加入4个表并成功检索了数据,但我不知道如何传递此数据以进行查看。

请任何人帮助我。预先感谢。

控制器代码

public class EditController : Controller
{

    public ActionResult Index()
    {

                    MachineTest1DbEntities entity = new MachineTest1DbEntities();
                    var entryPoint = (from Tt in entity.TransactionTables
                    join pm in entity.Projectmasters on Tt.ProjectId equals pm.ProjectId
                    join ps in entity.ProjectStatusmasters on Tt.ProjectStatusId equals ps.ProjectStatusId
                    join mm in entity.Modulemasters on Tt.ModuleId equals mm.ModuleId

                    select Tt
                );


        return View(entryPoint);
    }
}

2 个答案:

答案 0 :(得分:1)

首先使用要在视图上显示的属性创建自定义模型。

例如

  legend: {
    align: 'right',
    verticalAlign: 'top',
    layout: 'horizontal',
    floating: true,
    useHTML: true,
    symbolWidth: 0,
    width: 300,
    y: 80,
    itemMarginTop: 5,
    itemMarginBottom: 5,
    itemStyle: {
      width: 200,
      font: 'Helvetica Neue'
    },
  }

在操作方法中,将所选结果映射到自定义模型。

public class ResultModel
{
    public int ProjectId{ get; set; }
    public string  ProjectName { get; set; } 
    public string  ProjectStatus { get; set; } 
}

,然后在您的视图中使用这样的模型:public ActionResult Index() { MachineTest1DbEntities entity = new MachineTest1DbEntities(); var result= (from Tt in entity.TransactionTables join pm in entity.Projectmasters on Tt.ProjectId equals pm.ProjectId join ps in entity.ProjectStatusmasters on Tt.ProjectStatusId equals ps.ProjectStatusId join mm in entity.Modulemasters on Tt.ModuleId equals mm.ModuleId select new ResultModel { ProjectId= Tt.ProjectId, ProjectName = Tt.ProjectName , ProjectStatus =Tt.ProjectStatus }).ToList(); return View(result); }

答案 1 :(得分:0)

您必须将.ToList()添加到IQueryable返回的结果中,然后再将其发送到您的视图中。 这将向您的视图发送一个列表,您可以使用foreach(模型中的var项)进行迭代:

public ActionResult Index()
{
  var result= (from Tt in entity.TransactionTables
                join pm in entity.Projectmasters on Tt.ProjectId equals pm.ProjectId
                join ps in entity.ProjectStatusmasters on Tt.ProjectStatusId equals 
                ps.ProjectStatusId
                join mm in entity.Modulemasters on Tt.ModuleId equals mm.ModuleId

                select Tt
            ).ToList();


    return View(result);
}