2014-03-27 62 views
1

嗨我是个新来MVC3和我在这里返回两个变量有问题是我的控制器代码如何从控制器返回两个变量来查看MVC3

public ActionResult Create() 
    { 
     using (var context = new material_managementEntities()) 
     { 
      var blogs = (from cs in context.GROUP_MASTER 
         where cs.GROUP_NAME == "MIC" 
         select cs.ID).FirstOrDefault(); 

      var droplist = new TRANSACTION(); 
      droplist.GROUP_MASTER_ID = blogs; 
      droplist.GROUP_NAME = "MIC"; 
      var directory_master = db.DIRECTORY_MASTER.Include(d => d.CATEGORY_MASTER).Include(d => d.REPRESENTATIVE_MASTER); 
      droplist.dir_data = directory_master.ToList(); 
      return View(droplist); 
     } 

    } 

这里交易是一个表,DIRECTORY_MASTER是另一个和GROUP_MASTER_ID是一个外键,事务表,我想是的toList数据将显示在一个盒子modalpopup所以我需要从两个表

路过这里提供的数据模型

namespace Material.Models 
{ 
using System; 
using System.Collections.Generic; 
using System.Web.Mvc; 
public partial class TRANSACTION 
{ 
    public int ID { get; set; } 
    public int GROUP_MASTER_ID { get; set; } 
    public string GROUP_NAME { get; set; } 
    public string dir_data { get; set; } 
    public string NAME { get; set; } 
    public string ADDRESS_DETAILS { get; set; } 
    public string CONTACT_PERSON { get; set; } 
    public Nullable<int> TEL_NO { get; set; } 
    public Nullable<int> CELL { get; set; } 
    public Nullable<int> FAX { get; set; } 
    public string EMAIL_ID { get; set; } 
    public Nullable<int> OPENING_BALANCE { get; set; } 
    public Nullable<System.DateTime> OPENING_BALANCE_DATE { get; set; } 
    public string VERIFIED { get; set; } 

    public virtual GROUP_MASTER GROUP_MASTER { get; set; } 
} 

}

+0

你们是不是在视图访问导航属性? – Geethanga

+0

droplist.dir_data = directory_master.ToList();当你的droplist.dir_data是字符串时,你如何能够分配。 –

回答

2

要么你可以使用

viewbag.directory_master = (db.DIRECTORY_MASTER.Include(d => d.CATEGORY_MASTER).Include(d => d.REPRESENTATIVE_MASTER)).ToList(); 

,然后从你的模型迭代您viewbag.directory_master并显示所需要的。

,或者你可以创建一个包含directory_masterTRANSACTION自定义视图模型像

public class DashboardModel 
{ 
public TRANSACTION transation{get;set;} 
public List<directory_master>directoryMaster{get;set;} 
} 

所以你的动作会是这样

public ActionResult Create() 
    { 
     using (var context = new material_managementEntities()) 
     { 
      var blogId = (from cs in context.GROUP_MASTER 
         where cs.GROUP_NAME == "MIC" 
         select cs.ID).FirstOrDefault(); 

      DashboardModel dashboardModel= new DashboardModel(); 
      dashboardModel.transation.GROUP_MASTER_ID = blogId; 
      dashboardModel.transation.GROUP_NAME = "MIC"; 
      dashboardModel.directoryMaster = (db.DIRECTORY_MASTER.Include(d => d.CATEGORY_MASTER).Include(d => d.REPRESENTATIVE_MASTER)).ToList();   
      return View(dashboardModel); 
     } 

    } 
+0

您好sudil ravindran pk,我得到以下错误'Material.Models.DashboardModel'是一个'类型',但使用像'变量'和错误对象引用是必需的非静态字段,方法,或属性'Material.Models.DashboardModel.transation.get' – Vikas

+0

我已修复,请立即尝试。不要忘记在您的视图中指定DashboardModel –

+0

您好sudil ravindran pk我更改为dashboardModel,如下所示DashboardModel dashboardModel = new DashboardModel(); dashboardModel.transation.GROUP_MASTER_ID = blogId; dashboardModel.transation.GROUP_NAME =“MIC”; dashboardModel.directoryMaster =(db.DIRECTORY_MASTER.Include(d => d.CATEGORY_MASTER).Include(d => d.REPRESENTATIVE_MASTER)); return View(dashboardModel); – Vikas

1

我建议强烈地输入你的MVC视图来获取你需要的类型的模型,并通过控制器的action方法的返回函数中的参数将该模型传递给视图。