一个视图的MVC多个表

时间:2014-05-21 12:51:00

标签: asp.net-mvc

我有一个视图,其中包含数据库中4个表的数据。     我需要在模型中定义所有这些字段吗?所以我可以在我看来使用它们,如: -

@model.fieldFromTable1
@model.fieldFromTable2
@model.fieldFromTable3
@model.fieldFromTable4

1 个答案:

答案 0 :(得分:1)

快速回答是肯定的。您可以将您的模型更多地视为ViewModel。不是数据库中的实际模型。

在您的控制器中,您只需从数据库模型中填充ViewModel

<强> MyViewModel.cs

//put whatever properties your view will need in here 
public class MyViewModel 
{
    public string PropertyFromModel1 {get; set;}
    public string PropertyFromModel2 {get; set;}
}

<强> MyController.cs

public ActionResult MyAction()
{ 
    //the only job your action should have is to populate your view model
    //with data from wherever it needs to get it
    Model1 model = GetFirstModelFromDatabase();
    Model2 model2 = GetSecondModelFromDatabase();

    MyViewModel vm = new MyViewModel 
    {
        PropertyFromModel1 = model.MyProperty;
        PropertyFromModel2 = model2.MyProperty;
    }

    return View(vm);
}

<强> MyAction.cshtml

@Model.PropertyFromModel1
@Model.PropertyFromModel2

在您的观看中不使用原始域模型实际上是非常标准的做法,因为我会说通常不会将完全匹配到您要显示的内容