属性路由中的可选静态值

时间:2016-05-05 21:49:20

标签: asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing optional-parameters attributerouting

我使用属性路由为当前项目和一些路线,我使用一些可选参数。所以对于像...这样的网址

/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的一部分。除了设置映射到该路由的另一个操作之外,是否有任何机制可以实现此目的?

1 个答案:

答案 0 :(得分:1)

您可以为同一个操作方法定义2个不同的路线。在这种情况下,"可选"一条路线需要参数,另一条路线不存在。

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