我有一个视图,其中包含数据库中4个表的数据。 我需要在模型中定义所有这些字段吗?所以我可以在我看来使用它们,如: -
@model.fieldFromTable1
@model.fieldFromTable2
@model.fieldFromTable3
@model.fieldFromTable4
答案 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
在您的观看中不使用原始域模型实际上是非常标准的做法,因为我会说通常不会将与完全匹配到您要显示的内容