gpt4 book ai didi

c# - ASP.NET Core Razor 页面值不能为空

转载 作者:行者123 更新时间:2023-12-04 15:22:37 26 4
gpt4 key购买 nike

我是 ASP.NET Core 和 Razor 页面的新手。我创建了一个按钮并分配了一个页面处理程序来删除条目。当我尝试删除即时消息时出现空引用错误。当我运行代码并单击按钮删除条目时,我得到一个空异常错误

我想知道我在哪里犯了错误,以及一些改进编码的指导。预先感谢那些提供帮助的人。

这是我的首页

@page
@model BookList.Pages.BookPages.IndexModel


<form method="post">
@if (Model.Books.Count()>0)
{
<table class="table table-dark border">
<tr class="table-secondary">
@foreach (var book in Model.Books)
{
<tr>
<td>
@Html.DisplayFor(m => book.Name)
</td>
<td>
@Html.DisplayFor(m => book.Author)
</td>
<td>
<button class="btn btn-danger btn-sm" asp-page-handler="Delete" asp-route-id="@book.Id" onclick="return confirm('Are you sure you want to delete?')">Delete</button>
<a class="btn btn-success btn-sm" asp-route-id="@book.Id" asp-page="Edit">Edit</a>

</td>
</tr>
}
</table>
}
else
{
<p>No books available</p>
}
</form>


这是我的页面模型

        public IEnumerable<Book> Books { get; set; }

public async Task OnGet()
{
Books = await _dbContext.Books.ToListAsync();
}


public async Task<IActionResult> onPostDelete(int id)
{
var book = await _dbContext.Books.FindAsync(id);

if (book == null)
return NotFound();

_dbContext.Books.Remove(book);

await _dbContext.SaveChangesAsync();

return RedirectToPage("Index");

}
}
}

最佳答案

您可以尝试在您的页面中发送一个模型,例如

var allBooks=  await _dbContext.Books.ToList();

return View(allBooks);

如果这不起作用,请分享您的整个错误页面,它可能包含严肃的解释。

关于c# - ASP.NET Core Razor 页面值不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62997218/

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