一个视图中3个模型的ViewModel



你好,我正在使用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; 
}

My try of view model:

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);
    }

我要显示以下信息的列表:(项目名称,供应商名称,供应商回答)

那么你的视图模型类应该是这样的:

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; }
}

然后,你在你的控制器中建立你的视图模型,基于你需要的任何信息。

记住,视图模型建模视图。如果你需要视图中的信息,把那些属性放到视图模型中。您的视图模型不应该直接绑定到您的域/业务实体。这是一个不同的东西,服务于不同的目的。养成把它们分开的习惯。

我将为该页面创建一个ViewModel,填充ViewModel的属性并将其传递给视图

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);

相关内容

  • 没有找到相关文章

最新更新