【发布时间】:2021-01-11 23:34:31
【问题描述】:
我是 遵循 youtube 上的 ASP.NET Core MVC 课程 (.NET 5) 教程。当我单击 EDIT 按钮时,我收到错误“找不到此 localhost 页面”,用于将我重定向到类别模型的部分视图。我没有代码错误,因为我逐行遵循教程。我的路由似乎没问题:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
这是类别的索引视图:
<tbody>
@foreach (var obj in Model)
{
<tr>
<td width="50%">@obj.Name</td>
<td width="30%">@obj.DisplayOrder</td>
<td class="text-center">
<div class="w-75 btn-group" role="group">
<a asp-controller="Category" asp-all-route-Id="@obj.Id" asp-action="Edit" class="btn btn-primary mx-2">
Edit
</a>
<a asp-controller="Category" asp-all-route-Id="@obj.Id" asp-action="Delete" class="btn btn-danger mx-2">
Delete
</a>
</div>
</td>
</tr>
}
</tbody>
以及我的编辑操作方法:
//GET - EDIT
public IActionResult Edit(int? id)
{
if(id == null || id == 0)
{
return NotFound();
}
var obj = _db.Category.Find(id);
if(obj == null)
{
return NotFound();
}
return View(obj);
}
【问题讨论】:
-
你在表格中指定了控制器吗?
-
你想使用 asp-route-id 而不是 asp-all-route-Id。标签确实有一些差异,docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/…
标签: c# asp.net-core asp.net-core-mvc