路由参数中的'/'字符

时间:2014-01-30 12:01:48

标签: c# asp.net asp.net-mvc

我使用的是路由模式。最近,我改变了模式。现在,我正在努力解决一个令我烦恼的问题。

我想抓住以下网址:

http://www.mysite.com/news_title/-1322.html

路由模式:

    routes.MapRoute(
                    name: "haber2",
                    url: "{noFollow}-{id}.html",
                    defaults: new { controller = "Anasayfa", action = "HaberID" },
                    constraints: new {id = "\\d+"}
                );

点击下面的链接时,我面对的是找不到。如何克服这个问题?

任何帮助,技巧都非常感激。

2 个答案:

答案 0 :(得分:0)

您的网址中缺少斜杠:

 routes.MapRoute(name: "haber2",
                url: "{noFollow}/-{id}.html",
                defaults: new { controller = "Anasayfa", action = "HaberID" },
                constraints: new {id = "\\d+"}
            );

答案 1 :(得分:0)

没有。不可能。

在路线上削减肯定会造成这个问题。 默认路由引擎始终基于否搜索路由模式。 URL中的斜杠。

我尝试使用外卡字符'*',就像抓住所有路线一样。

类似于以下内容。

 routes.MapRoute(
                    name: "haber2",
                    url: "{noFollow*}-{id}.html",
                    defaults: new { controller = "Anasayfa", action = "HaberID" },
                    constraints: new {id = "\\d+"}
                );

但没有运气..

希望有所帮助。