C#ASP.NET Core Razor页面:如何在标记内访问路由约束

时间:2018-10-12 20:15:19

标签: c# razor asp.net-core

我有一个Razor页面,其标记如下所示:

@page {id:int?}
...

现在,如果您访问路径/MyPage/5上的页面,则类方法id上的OnGet(Int32? id)参数将被设置为值5

我想根据id的值显示一些条件标记,是否可以直接在标记中访问id?

我尝试了@id,但是它没有定义-我想这很有道理。 我认为我可以在OnGet(..)方法中捕获它,并且如果没有其他方法可以直接通过属性使它可用。这种方法的缺点是,每次发生回发后,我都必须重新设置该值。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

简短回答

这是访问id值的一种方法。

<p>RouteData.Values["id"]</p>

调试

如果要调试,可以像这样在页面上转储所有可用的RouteData

<p>@Newtonsoft.Json.JsonConvert.SerializeObject(RouteData)</p>

输出将如下所示:

{"DataTokens":{},"Routers":[],"Values":{"page":"/Index","id":"101273123"}}