属性路由中的可选静态值

Optional static value in attribute routing

我正在为当前项目使用属性路由,并且在一些路由中,我正在使用一些可选参数。所以对于 URL 这样的...

/detail/H40466/wood-to-wood-foundation-and-boxspring-frame-assembly

其路由定义如...

[Route("detail/{productName}/{applicationSlug?}")]

wood-to-wood... 是可选参数。我想要做的(如果可能的话)是仅在存在第二个参数时才显示静态值。像...

/detail/H40466/for/wood-to-wood-foundation-and-boxspring-frame-assembly

当存在最后一个可选参数时,单词 for 只是 url 的一部分。除了设置映射到该路由的另一个操作之外,是否有任何机制可以实现此目的?

您可以为同一操作方法定义 2 个不同的路由。在这种情况下,一个路由应该需要 "optional" 参数,而另一路由则不存在。

[Route("detail/{productName}/for/{applicationSlug}", Order = 1)]
[Route("detail/{productName}", Order = 2)]