Asp.net mvc MVC:在视图中使用两个模型
我的数据库中有两个表,即Company和Branchs。因此,理想情况下,一个公司可以有多个分支机构。使用entity framework,我为这两个表添加了模型类。在Create Company的视图页面中,我有一节介绍了如何向特定公司添加多个分支机构。具体来说,它有一个用于添加一个分支的div。之后,有一个用于添加更多分支的链接。当用户单击该链接时,将打开一个类似的div。我如何才能完成相同的任务 模型类:Asp.net mvc MVC:在视图中使用两个模型,asp.net-mvc,razor,Asp.net Mvc,Razor,我的数据库中有两个表,即Company和Branchs。因此,理想情况下,一个公司可以有多个分支机构。使用entity framework,我为这两个表添加了模型类。在Create Company的视图页面中,我有一节介绍了如何向特定公司添加多个分支机构。具体来说,它有一个用于添加一个分支的div。之后,有一个用于添加更多分支的链接。当用户单击该链接时,将打开一个类似的div。我如何才能完成相同的任务 模型类: namespace Models { using System; u
namespace Models
{
using System;
using System.Collections.Generic;
public partial class Company
{
public Company()
{
this.Branches = new HashSet<Branches>();
}
public long ID { get; set; }
public string Name { get; set; }
public string QuickInfo { get; set; }
public virtual ICollection<Branches> Branches { get; set; }
}
}
命名空间模型
{
使用制度;
使用System.Collections.Generic;
公共部分类公司
{
上市公司()
{
this.branchs=newhashset();
}
公共长ID{get;set;}
公共字符串名称{get;set;}
公共字符串QuickInfo{get;set;}
公共虚拟ICollection分支{get;set;}
}
}
创建视图:
@model Models.Company
@using (Html.BeginForm("Create", "Company"))
{
@Html.TextBoxFor(x=>x.Name,null)
@Html.TextBoxFor(x=>x.QuickInfo,null)
}
<div>
<a href="#" >Add Branch</a>
<h3>Branch</h3>
@Html.TextAreaFor(x=>x.Branches.Add() /*what to do here*/
</div>
@model Models.Company
@使用(Html.BeginForm(“创建”、“公司”))
{
@TextBoxFor(x=>x.Name,null)
@Html.TextBoxFor(x=>x.QuickInfo,null)
}
分支机构
@Html.TextAreaFor(x=>x.branchs.Add()/*在这里做什么*/
您可以使用ViewModel
在一个视图中使用多个模型
例如:
假设您希望在视图中使用两个模型,即ModelA和ModelB
ModelA
{
public int PropA { get; set; }
public int PropB { get; set; }
}
ModelB
{
public int PropC { get; set; }
public int PropD { get; set; }
}
现在,要在单个视图中使用这两个模型,可以创建单个ViewModel
例如
ModelC
{
public int PropX { get; set; }
public int PropY { get; set; }
public List<ModelA> ListOfModelA { get; set; }
public List<ModelB> ListofModelB { get; set; }
}
ModelC
{
公共int PropX{get;set;}
公共int属性{get;set;}
模型的公共列表列表{get;set;}
公共列表ListofModelB{get;set;}
}
因此,现在您的ModelC将有ModelA和ModelB的列表,并且它有自己的属性,可以在单个视图中使用。堆栈溢出不太适合于非常开放式的“我该怎么做?”没有大量信息的问题,你没有提供。尽可能多地努力提问,就像你希望有人回答一样。给我们图表、代码、尝试的解决方案等等,帮助我们帮助你。提供不完整的或伪代码非常有用,这样我们可以看到你的思维过程。