MVC - 使用c#将ViewModel传递给View

时间:2011-10-31 13:42:07

标签: model-view-controller viewmodel

我有一个ViewModel:

public class EmployeeViewModel
{


    Employees employee{ get; set; }
    Budget budget { get; set; }



}

我喜欢将此视图模型传递给执行需要两个表的创建的视图。

我尝试在控制器中执行以下操作,将信息传递给视图但未成功:

    EmployeeViewModel pvm = new EmployeeViewModel()
    return View(pvm);

原因是员工和预算的价值都是空的。 如何将此信息传递给视图,以便它知道这两个表?

1 个答案:

答案 0 :(得分:1)

Maybe if you add

public class EmployeeViewModel
{
    Employees employee{ get; set; }
    Budget budget { get; set; }

    public EmployeeViewModel()
    {
         employee = ... initialize Employee list/set/...
         budget = ... initialize budget
    }

}

这样,您将在ViewModel属性中有引用,或者如果Employees和Budgets是linq / ADO EF模型,您可以从控制器中的数据库附加数据

public class BudgetController : Controller {

  public ViewResult Index(){
    var db = new YourContrxtClass();
    EmployeeViewModel pvm = new EmployeeViewModel()
    pvm.employees = db.Employees.All(); // or some where condition
    pvm.budget = db.Budget.FirstOrDefault(b=> b.Year == DateTime.Now.Year); // if you have Year property in budget model
    return View(pvm);
  }

}

请注意,这只是在我脑海中测试过,并且示例代码中可能存在一些错误