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

时间:2018-06-15 20:37:46

标签: c# asp.net-mvc

我有两个模型,我想在一个string str = null中使用它们。

View

我想在一个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; } } 中使用这些。这是一个书店应用程序。有了这个,我想在我的View页面上显示流派和作者姓名。

2 个答案:

答案 0 :(得分:0)

这是您需要做的,并将组合视图模型返回到视图

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

答案 1 :(得分:0)

1页中不能有2种不同的型号。但是,您可以查看两个选项:

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

@model Tuple<Genre, Author>

要访问流派,请使用Tuple.Item1

或使用UrlValidator

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UrlValdator{
    String value();
}

要访问流派,请使用

@UrlValidator("http://some.known.url") public void doSomething();

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