我正在开发一个asp.net mvc结构的项目。我想创建我从一个web服务购买的书籍的详细页面,但是我遇到了一个问题,无法解决它。我需要帮助。
Web API:https://gutendex.com/
这些是我主页的代码。
@model BookListModel
<div class="col-md-12">
<div class="row">
@foreach (var books in Model.results)
{
<div class="col-md-3 text-truncate">
<img src="@books.formats.imagejpeg" alt="...">
<div class="card-body">
<h5 class="card-title">@books.title</h5>
</div>
<div class="d-flex justify-content-between align-items-center">
<div class="btn-group">
<a class="btn btn-primary stretched-link" asp-controller="Book" asp-action="Details" asp-route-id="@books.id">Details</a>
<button type="button" class="btn btn-sm btn-outline-secondary">Add</button>
</div>
</div>
<br />
</div>
}
</div>
</div>
public class BookRepository
{
private static List<Result> results;
public static Result GetBooksById(int id)
{
return results.FirstOrDefault(b => b.id == id); // PROBLEM HERE
}
}
public IActionResult Details(int id)
{
return View(BookRepository.GetBooksById(id));
}
@model Result
<div class="card mb-3">
<div class="card-body">
<div class="row no-gutters">
<div class="col-md-3">
<img src="@Model.formats.imagejpeg" class="card-img">
</div>
<div class="col-md-9">
<h5 class="card-title">@Model.title</h5>
<p class="card-text">@Model.subjects</p>
<p class="card-text">
<small class="text-muted">3 days ago</small>
</p>
</div>
</div>
</div>
</div>
我写了一个图书仓库类来帮助我,图书的id在一个按钮的帮助下从那里来,但是我的方法返回了一个空值。
It gives an error here, it returns null.
1条答案
按热度按时间dldeef671#
你的
private static List<Result> results;
是空的。你应该在某个地方初始化它。或者加载数据到它里面,不管你的意图是什么。至少这是错误所指示的,FirstOrDefault
是一个在集合上调用的扩展方法,但是如果所述集合是空的,它就会失败。而且你的代码不会显示它是否在某个地方初始化。即