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

时间:2018-08-09 01:03:54

标签: c# .net-core razor-pages asp.net-core-routing

我有一个名为 Pages / user.cshtml Pages / 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" }); });

user.cshtml.cs

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

1 个答案:

答案 0 :(得分:4)

  

使用@page指令进行以下操作:

     
      
  • 将参数附加到页面的默认路由。例如,一个ID   带有id的页面可能需要参数@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) {

        //...

    }
}