MVC路由 - 基于固定参数列表的网址

时间:2017-02-06 13:12:06

标签: asp.net-mvc redirect

我有一大堆需要301重定向的网址。我已经设置了许多路线作为“捕获”的路线。对于各种301,但我似乎已经创建了一个重定向循环。

有人可以确认 - 以下是否是有效的网址并强制参数来自管道分隔列表(即如果值不匹配,则路线赢了&#39 ;抓住)

routes.MapRoute("MyRouteName", // Route name
    "first-folder/second-folder/{param1}", // URL with parameters
    new
    {
        controller = "Redirect",
        action = "MyRedirectHandler",
        newRouteName = "mynewroute",
        folder1= "foo",
        folder2 = "bar",
        set = "option1|option2|option3"
    });

所以,在这种情况下:

mysite.com/first-folder/second-folder/option1 => mysite.com/mynewroute/foo/bar

mysite.com/first-folder/second-folder/option2 => mysite.com/mynewroute/foo/bar

mysite.com/first-folder/second-folder/option88 => 404

set中的params仅用于捕获url,我的MyRedirectHandler是一个控制器操作,它将执行我在newRouteName中指定的路由301。

1 个答案:

答案 0 :(得分:1)

行, 我发布的太快了。对于遇到类似问题的任何人来说,这个循环归结为Route param默认值和param约束之间的差异。上面的例子应该是:

tr