0

过去我做过 MediaWiki 的开发,并且对创建类似于 Wiki 格式的路线很感兴趣{namespace}:{article}

在测试我的创作过程中,但遇到了 URL 模式的问题。

routes.MapRoute(
    name: "Generic" ,
    url: "{controller}:{name}" ,
    defaults: new {
        controller = "Article" ,
        action = "View" ,
        name = "Home"
    } ,
    constraints = new {
        name = @"^[\w]+$"
    }
);

目前的问题是冒号:。为了使 url 以我需要的方式工作,我必须在 url 中有冒号才能解析它。

这条 MapRoute 也是我目前唯一的路线。

想知道如何为 MVC 创建 MapRoute,以便冒号表示法是可选的,并且默认为 Article Controller。

4

1 回答 1

1

只需将其放在默认路由上方即可。

路线按添加顺序导航。因此,通过将此路由置于默认路由之上,它将首先针对 URL 进行测试。如果失败,则测试下一条路线。

// Your route here

// Default route here

如果您需要它是可选的,那么您需要指定两条路线。按照您希望检查它们的顺序放置它们,并确保您的默认路线保持在底部。然后,默认路由可以充当任何失败的“后备”。

您不能为此使用约束.. 无法解析可选的冒号字符。我的意思是..路由引擎无法从诸如“”之类的字符串中推断出控制器和“名称” HomeGoldBishop。然而,它可以从“ Home:GoldBishop”中推断出来。您将始终需要一些可以依靠的东西,例如默认路线。

于 2013-12-01T23:32:40.050 回答