您好我正在使用MVC4尝试使用viewmodel以便我可以访问3个模型的数据...
我想显示以下信息列表:(项目名称,供应商名称,供应商答案)
这里是我的代码:
public class Projects
{
[Key]
public int ProjectId { get; set; }
public string ProjectName { get; set; }
public string Descriptions { get; set; }
}
public class SubmitedProjects
{
[Key]
public int ProjectId { get; set; }
public int SupplierId { get; set; }
public string SupplierAnswerr { get; set;
}
public class Supplier
{
[Key]
public int SupplierId { get; set; }
public string SupplierName { get; set;
}
我尝试查看模型:
public class ModelInfo
{
public ProjectEntry oProjects { get; set; }
public SubmittedProject oSubmitedProjects { get; set; }
}
控制器:
public ActionResult MProjects ( )
{
SubmittedProjectContext d = new SubmittedProjectContext();
ProjectContext ds = new ProjectContext();
List <ModelInfo> r = new List <ModelInfo>();
ModelInfo rr = new ModelInfo();
rr.oSubmitedProjects=new SubmittedProject();
rr.oProjects=new Projects();
r.Add(rr);
return View(r);
}
答案 0 :(得分:1)
我想显示以下信息列表:(项目名称,供应商名称,供应商答案)
然后您的视图模型类应如下所示:
public class ProjectViewModel
{
public string ProjectName { get; set; }
public string SupplierName { get; set; }
public string SupplierAnswer { get; set; }
}
如果您需要在一个视图中使用多个项目:
public class MultipleProjectsViewModel
{
public IList<ProjectViewModel> Projects { get; set; }
}
然后,根据您需要的任何信息,在控制器中构建视图模型。
请记住,视图模型为视图建模。如果您在视图中需要该信息,请将这些属性放在视图模型中。您的视图模型不应该直接绑定到您的域/业务实体。用不同的目的是另一回事。养成将它们分开的习惯。
答案 1 :(得分:-1)
我只为该页面创建一个ViewModel,填充该ViewModel的属性并将其传递给视图
e.g。
public class ExampleViewModel{
public string ProjectName { get; set; }
public string SupplierName { get; set; }
public string SupplierAnswer { get; set; }
}
控制器中的
ExampleViewModel evm = new ExampleViewModel();
evm.ProjectName = "Name";
evm.SupplierName = "Supplier";
evm.SupplierAnswer = "Answer";
return View(evm);