ASP.NET MVC3中一个控制器中的多个模型

时间:2012-06-08 07:44:52

标签: asp.net-mvc-3 asp.net-mvc-3-areas

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

请告诉我如何存档。

以下是我的两个模型类:

公共类CompanyModel

{

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

}

公共类AddressModel

{

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

3 个答案:

答案 0 :(得分:6)

您必须为两个表

创建一个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)

答案 1 :(得分:0)

你需要另一个这样的课程

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

答案 2 :(得分:0)

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

获取