2014-03-27 60 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方法的返回函數中的參數將該模型傳遞給視圖。