404改变ASP NET MVC应用程序中的路由

时间:2015-05-06 08:25:54

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

我的应用上的工作路线看起来像这样:

            routes.MapRoute(
            name: "Category",
            url: "{name}-c{categoryId}",
            defaults: new { controller = "Products", action = "Index", name = "ErrorName" },
            namespaces: new[] { "B2B.Controllers" });

        routes.MapRoute(
            name: "InfoPage",
            url: "{name}-i{id}",
            defaults: new { controller = "InfoPages", action = "Details", name = "ErrorName" },
            namespaces: new[] { "B2B.Controllers" });

我已将短划线( - )更改为散列(#),因为空格在url中更改为短划线。

 url: "{name}#c{categoryId}",
 url: "{name}#i{id}",

现在我已经改变了这个相同的路线,只改变了这一个字符,我在这样的网址上得到404:

siteadess:1234/1.0.1-Podstawowa%23c4

我也尝试将哈希值改为低于分数,但它也没有用。

2 个答案:

答案 0 :(得分:1)

您不能在URL路由中使用哈希(#),因为哈希之后的任何内容都不会发送到服务器。

因此,您的路由/{name}#c{categoryId}永远不会被点击,因为服务器将看到的距离最近/{name}

答案 1 :(得分:0)

路由没有奏效的主要原因是网址中的点。

siteadess:1234/1.0.1-Podstawowa%23c4

去掉点后一切都很完美! 在被其他人吮吸时,我也用下划线替换了#标签。