【问题标题】:How to pass two models in a single a view [duplicate]如何在一个视图中传递两个模型[重复]
【发布时间】:2021-08-20 22:52:06
【问题描述】:

我正在使用 ASP.NET MVC,我创建了两个模型类,UserAddress。我想在同一个视图上使用它们,以允许用户在一页上输入所有信息。问题是 ASP.NET MVC 只允许传递一个模型。解决这种情况的最佳做法是什么?

public class Address
{
    [Key]
    public int Id { get; set; } 
    public int StreetNumber { get; set; }

    public string Route { get; set;}
    public string City { get; set; }

    public string State { get; set;  }

    public string PostalCode { get; set; }

    public string Coutry { get; set; }

    public int Adresstype { get; set; }
    public int UserId { get; set; }
    public virtual User User { get; set; }
}

public class User
{
    public User()
    {
        this.Ads = new HashSet<Ad>();
        this.Addresses = new HashSet<Address>();
    }

    [Key]
    public int Id { get; set; }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailAddress { get; set; }
    public int PhoneNumber { get; set; }

    public virtual ICollection<Ad> Ads { get; set; }
    public virtual ICollection<Address> Addresses { get; set;}
}

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    这个想法是为那个确切的视图创建一个视图模型 - 这只是一个你可以打包任何你喜欢的东西的类 - 比如你的每个基类中的一个:

    public class ViewModel
    {
        public User User { get; set; }
        public Address Address { get; set; }
    } 
    

    然后您将这个 视图模型 类传递到您的视图中,您就可以轻松地处理两个事物的值 - 用户和地址。

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 2017-05-04
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 2018-01-18
      相关资源
      最近更新 更多