当传入请求以404结尾时,如何知道id的值?

问题描述 投票:0回答:1

为了便于说明,让我举一个简单的例子如下。

Review.cshtml.cs:

public class ReviewModel : PageModel
{
    public void OnGet(int? id)
    {
        if (id == null)
            ViewData["X"] = "null";
        else
            ViewData["X"] = id;
    }
}

Review.cshtml:

@page 

@model ReviewModel

<!DOCTYPE html>
<html>
<body>
    X = @ViewData["X"]
</body>
</html>

当我导航到

  • localhost/Review/1 --------------- 404。
  • localhost/Review/xyz --------------- 404。
  • --------------- localhost/Review/ X=null
  • --------------- localhost/Review?id=1 X=1
  • --------------- localhost/Review?id= X=null
  • --------------- localhost/Review?id=xyz X=null

我尝试使用Visual Studio Debugger来计算出404页面时id的值,但我无法介入。

当传入请求以404结尾时,如何知道id的值?

c# asp.net-core razor-pages
1个回答
3
投票

我认为它与路由有关,你应该能够在你的Startup.cs中创建自己的路由:

options.Conventions.AddPageRoute("/Review", "Review/{id?}");

https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/razor-pages-convention-features

© www.soinside.com 2019 - 2024. All rights reserved.