2

我已经为某些 URL 做了一些 URL 路由。

routes.MapRoute(
                "ProductDetails",
                "Product/{name}/{*other}",
                new { controller = "Product", action = "Details" }
            );

上面的代码会将所有类型的 url 路由/Product/{name}/Product/Details/{parameter}. 它工作正常,现在我希望如果我输入 url /Product/List,这必须通过默认路由处理。

而且我不想再为 List 创建一条路线。

请指教。

4

1 回答 1

5

为参数添加约束name(不等于列表):

routes.MapRoute(
    name: "ProductDetails",
    url: "Product/{name}/{*other}",
    defaults: new { controller = "Product", action = "Details" },
    constraints: new { name = "^(?!List$).*$" }
);

此路由将不匹配/Product/Listurl

如果您还想排除其他名称,请更新:^(?!(List|Foo|Bar)$).*$

于 2012-12-27T15:09:40.480 回答