Asp.net mvc 3 ASP.NET MVC3中一个控制器中的多个模型

Asp.net mvc 3 ASP.NET MVC3中一个控制器中的多个模型,asp.net-mvc-3,asp.net-mvc-3-areas,Asp.net Mvc 3,Asp.net Mvc 3 Areas,我有两种型号,ComanyModel和Address型号。在公司模型中,有一个AddressId连接数据库中的两个表。我想注册一家公司,并将信息保存在两个单独的表中的数据库中。现在,我希望用户在同一页面中输入公司信息和地址,但不知道如何进行。我能够在ASP中完成它,但现在我对MVC3非常陌生 请建议我如何存档此文件 以下是我的两个模型类: 公共类公司模型 { public Guid AddressId { get; set; } public string CompanyEma

我有两种型号,ComanyModel和Address型号。在公司模型中,有一个AddressId连接数据库中的两个表。我想注册一家公司,并将信息保存在两个单独的表中的数据库中。现在,我希望用户在同一页面中输入公司信息和地址,但不知道如何进行。我能够在ASP中完成它,但现在我对MVC3非常陌生

请建议我如何存档此文件

以下是我的两个模型类:

公共类公司模型

{

    public Guid AddressId { get; set; }
    public string CompanyEmailAddress { get; set; }
    public string DirectorName { get; set; }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public int RegNo { get; set; }
    public string VatNo { get; set; }

}
公共类寻址模型

{

    public string City { get; set; }
    public string Code { get; set; }
    public Guid Id { get; set; }
    public string Line1 { get; set; }
    public string Line2 { get; set; }
    public string Suburb { get; set; }
}

你需要再上一节这样的课

public class CompanyAddressModel
{
public CompanyModel Company { get; set; }
public AddressModel Address { get; set; }
}

你需要再上一节这样的课

public class CompanyAddressModel
{
public CompanyModel Company { get; set; }
public AddressModel Address { get; set; }
}

必须为两个表创建一个viewModel

例如:

public class nameViewModel
{
    public Company Company { get; set; }
    public Address Address { get; set; }
}
然后在视野中

 @Html.LabelFor(model => model.Company.Name)

 @Html.EditorFor(model => model.Company.Name)
 @Html.ValidationMessageFor(model => model.Company.Name)


 @Html.LabelFor(model => model.Address.Name)

 @Html.EditorFor(model => model.Address.Name)
 @Html.ValidationMessageFor(model => model.Address.Name)

必须为两个表创建一个viewModel

例如:

public class nameViewModel
{
    public Company Company { get; set; }
    public Address Address { get; set; }
}
然后在视野中

 @Html.LabelFor(model => model.Company.Name)

 @Html.EditorFor(model => model.Company.Name)
 @Html.ValidationMessageFor(model => model.Company.Name)


 @Html.LabelFor(model => model.Address.Name)

 @Html.EditorFor(model => model.Address.Name)
 @Html.ValidationMessageFor(model => model.Address.Name)

正如Murat前面提到的,您可以创建一个新的viewmodel,然后使用
@Model.Company
@Model.Address
访问类的实例。如果你很懒(像我一样),你可以从每个类中创建强类型视图,然后将视图合并成一个。或者您可以从类中创建局部视图,并通过
@Html.Action(“CreateCompany”,Model.Company)
@Html.partial(“CompanyView”,Model.Company)获取它们

正如Murat前面提到的,您可以创建一个新的viewmodel,然后使用
@Model.Company
@Model.Address
访问类的实例。如果你很懒(像我一样),你可以从每个类中创建强类型视图,然后将视图合并成一个。或者您可以从类中创建部分视图,并通过
@Html.Action(“CreateCompany”,Model.Company)
@Html.partial(“CompanyView”,Model.Company)

获取它们。您是否使用实体框架?这就是我将数据保存到数据库的方式。使用FusionXC.数据;IDataOperations ops=DataSession.GetDataOperations(null);List deptModel=新列表();ops.Create(deptModel).Into(“部门”).Values(deptModel);ops.Commit();我有一个业务层、数据层和UI层,在业务层中,我有一个Models文件夹,其中的类与数据库中的类相同,并使用它们来保存我的数据。您使用实体框架吗?这就是我将数据保存到数据库的方式。使用FusionXC.数据;IDataOperations ops=DataSession.GetDataOperations(null);List deptModel=新列表();ops.Create(deptModel).Into(“部门”).Values(deptModel);ops.Commit();我有一个业务层、数据层和UI层,在业务层我有一个Models文件夹,其中的类与DB中的类相同,并使用它们来保存我的数据我如何在控制器中创建ActionResult创建方法???[HttpPost]公共ActionResult ActionName(nameViewModel模型){//Actions}如何在控制器中创建ActionResult创建方法???[HttpPost]公共ActionResult ActionName(nameViewModel model){//Actions}