C# 在一个视图中链接两个模型

C# 在一个视图中链接两个模型,c#,asp.net-mvc,C#,Asp.net Mvc,我有两个模型,我想在一个视图中使用它们 public class Author { public int Id { get; set; } [Required] public string Name { get; set; } //public virtual List<Book> Books { get; set; } } public class Genre { pu

我有两个模型,我想在一个
视图中使用它们

public class Author
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        //public virtual List<Book> Books { get; set; }
     }




public class Genre
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
       // public virtual List<Book> Books { get; set; }
    }
公共类作者
{
公共int Id{get;set;}
[必需]
公共字符串名称{get;set;}
//公共虚拟列表书{get;set;}
}
公共课体裁
{
公共int Id{get;set;}
[必需]
公共字符串名称{get;set;}
//公共虚拟列表书{get;set;}
}

我想在一个
视图中使用这些。这是一个书店应用程序。有了这个,我想在我的
主页
页面上显示流派和作者姓名

这就是您需要执行的操作,并将组合视图模型返回到视图中

public class Author
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    //public virtual List<Book> Books { get; set; }
}

public class Genre
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    // public virtual List<Book> Books { get; set; }
}

// This is what you bring back to your View
public class CombinedViewModel {

    public Genre Genre { get; set; }
    public Author Author {get; set;}
}
公共类作者
{
公共int Id{get;set;}
[必需]
公共字符串名称{get;set;}
//公共虚拟列表书{get;set;}
}
公共课体裁
{
公共int Id{get;set;}
[必需]
公共字符串名称{get;set;}
//公共虚拟列表书{get;set;}
}
//这就是你带回你的观点
公共类组合视图模型{
公共类型{get;set;}
公共作者{get;set;}
}

一页中不能有两种不同的型号。但是,您可以研究两个选项:

将两个模型放在一个模型中(或一个放在另一个模型中)

要访问流派,请使用
Model.Genre

或者使用
元组

@model Tuple<Genre, Author>
@模型元组
要访问体裁,您可以使用

Tuple.Item1


我强烈建议使用第一种方法,实际上不鼓励使用第二种方法。

您需要创建一个新的ViewModel,然后引入这些类。请查阅术语“ViewModel”。关于Stackoverflow(例如:)你做了哪些研究????网上有很多关于这个话题的例子!!!
@model Tuple<Genre, Author>