Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net核心路由问题?_C#_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# ASP.Net核心路由问题?

C# ASP.Net核心路由问题?,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我是 在youtube上学习ASP.NET核心MVC课程(.NET 5)教程。当我点击编辑按钮时,我得到错误“这个本地主机页面找不到”,该按钮用于将我重定向到类别模型的部分视图。我没有代码错误,因为我是按照教程一行行。我的路线似乎还可以: app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default",

我是 在youtube上学习ASP.NET核心MVC课程(.NET 5)教程。当我点击编辑按钮时,我得到错误“这个本地主机页面找不到”,该按钮用于将我重定向到类别模型的部分视图。我没有代码错误,因为我是按照教程一行行。我的路线似乎还可以:

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>

这一行有一个问题:

识别。因此,值
@obj.Id
没有被传递到
Edit
操作中,因此它的
int?未设置id
参数。这意味着
返回NotFound()行运行并生成404响应

相反,你需要。为完整起见,以下是更新版本:



您没有提到“删除”
操作,但这似乎遇到了相同的问题。

是否在表中指定了控制器?您希望使用asp路由id而不是asp-all-route-id。标记之间确实存在一些差异,
//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);
    }