如何将 /user/id 路由到 user.cshtml

How do I route /user/id to user.cshtml

我有一个名为 Pages/user.cshtmlPages/user.cshtml.cs 的文件包含以下内容。

当我访问 /user?id=123 时它执行得很好,但是我不知道如何使 /user/123 工作。

除了 404,我什么也得不到。我阅读了这一页

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1

可是我还是想不通

我试过这条路线,但运气不好

app.UseMvc(routes => { routes.MapRoute("User", "User/{id}", new { action = "User" }); });

用户。cshtml.cs

public class UserModel : PageModel
{
    public void OnGet(int id)
    {
        @ViewData["Title"] = id.ToString(); 

Use the @page directive to:

  • Append parameters to a page's default route. For example, an ID parameter, id, can be required for a page with @page "{id}".

引用Introduction to Razor Pages in ASP.NET Core:

正如我在评论中提到的,您将 @page "{id}" 添加到页面的 cshtml

User.cshtml

@page {id:int}
@model UserModel

<html>
<body>
    ...

并像上面那样在操作中包含参数

User.cshtml.cs

public class UserModel : PageModel {
    public void OnGet(int id) {

        //...

    }
}