gpt4 book ai didi

c# - ASP.NET MVC3 ViewModel - 困惑

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:14 26 4
gpt4 key购买 nike

我正在学习 C# ASP.NET MVC 3 中的 ViewModels,但我一直坚持在我的 View 中显示来自 ViewModel 的数据。

模型:

public class Author
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Book> Books { get; set; }
}

public class Book
{
public int Id { get; set; }
public int AuthorId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
}

在我的索引 View 中,我想显示作者和书籍的一般列表。我为此制作了一个ViewModel:

public class BookIndexViewModel
{
public List<Book> Books { get; set; }
public List<Author> Authors { get; set; }
}

这是来自 Controller 的Index() 操作方法:

public ViewResult Index()
{
BookIndexViewModel viewModel = new BookIndexViewModel();
viewModel.Authors = db.Authors.ToList();

// leaving Books empty for now

return View(viewModel);
}

我有一个强类型的索引 View ,我想在其中显示作者列表:

@model IEnumerable<NewBookStore.ViewModels.BookIndexViewModel>

@foreach (var author in Model.Authors) {
<tr>
<td>
@author.Name
</td>
</tr>
}

Model.Authors 部分不起作用。当我键入模型时。并等待 IntelliSense 显示作者,它未列出。错误描述为:

'System.Collections.Generic.IEnumerable' does not contain a definition for 'Authors' and no extension method 'Authors' accepting a first argument of type 'System.Collections.Generic.IEnumerable' could be found (are you missing a using directive or an assembly reference?)

最佳答案

View 中的模型不应该是 IEnumerable。您正在发送一个包含 2 个列表的模型。您没有发送 View 模型列表。

关于c# - ASP.NET MVC3 ViewModel - 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com