gpt4 book ai didi

asp.net-mvc - 带有自定义文字的 asp .net mvc 路由 url

转载 作者:行者123 更新时间:2023-12-02 14:20:05 24 4
gpt4 key购买 nike

是否可以使用可以具有默认参数的自定义文字分隔符创建 url?

context.MapRoute(
"Forums_links",
"Forum/{forumId}-{name}",
new { area = "Forums", action = "Index", controller = "Forum" },
new[] { "Jami.Web.Areas.Forums.Controllers" }
);

正如您所见,我使用破折号将 id 与名称分开,这样我就可以拥有如下网址:

/Forum/1-forum-name

而不是:

/Forum/1/forum-name

我发现问题是我使用了多个破折号。并且路由引擎不知道要分离哪一个。但总的来说,它并没有改变我的问题,因为我无论如何都想使用多个破折号。

最佳答案

非常有趣的问题。

我能想到的唯一方法很像 Daniel 的方法,但有一个额外的功能。

context.MapRoute(
"Forums_links",
"Forum/{forumIdAndName}",
new { area = "Forums", action = "Index", controller = "Forum" },
new { item = @"^\d+-(([a-zA-Z0-9]+)-)*([a-zA-Z0-9]+)$" } //constraint
new[] { "Jami.Web.Areas.Forums.Controllers" }
);

这样,与此路由匹配的唯一项目就是采用以下模式格式化的项目:

[one or more digit]-[zero or more repeating groups of string separated by dashes]-[final string]

从这里您将使用 Daniel 发布的方法从 forumIdAndName 参数解析您需要的数据。

关于asp.net-mvc - 带有自定义文字的 asp .net mvc 路由 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com