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

时间:2018-01-04 17:33:25

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

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

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的值?

1 个答案:

答案 0 :(得分:3)

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

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

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