我有一个名为 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();
答案 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) {
//...
}
}