如何在mvc3中将两个变量从控制器返回到视图

时间:2014-03-27 07:51:26

标签: c# asp.net-mvc asp.net-mvc-3

嗨,我是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);
        }

    }

这里Transaction是一个表,DIRECTORY_MASTER是另一个,GROUP_MASTER_ID是Transaction表的外键,我想要的是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; }
}

}

2 个答案:

答案 0 :(得分: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);
        }

    }

答案 1 :(得分:1)

我建议强烈输入您的MVC视图以获取所需类型的模型,并通过控制器操作方法的return函数中的参数将该模型传递给视图。

相关问题