我的应用上的工作路线看起来像这样:
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
我也尝试将哈希值改为低于分数,但它也没有用。
答案 0 :(得分:1)
您不能在URL路由中使用哈希(#),因为哈希之后的任何内容都不会发送到服务器。
因此,您的路由/{name}#c{categoryId}
永远不会被点击,因为服务器将看到的距离最近/{name}
答案 1 :(得分:0)
路由没有奏效的主要原因是网址中的点。
siteadess:1234/1.0.1-Podstawowa%23c4
去掉点后一切都很完美! 在被其他人吮吸时,我也用下划线替换了#标签。