当在history.pushState中使用'/'字符时,MVC重写URL

Meh*_*ani 5 javascript c# asp.net-mvc pushstate

我有一个没有任何路由的ASP.NET MVC项目(使用默认值).我history.pushState在我的项目中使用如下:(成像,我们在products页面中)

history.pushState(null, null, '#/param1/param2');
Run Code Online (Sandbox Code Playgroud)

URL更改为:www.domain.com/param1/param2,但我期望这样:www.domain.com/products#/param1/param2.

请注意,如果我使用(例如)-字符instate /,它将按预期工作.

没有JavaScript或有C#错误.

为什么它没有按预期工作?

bst*_*zel 0

您的调用似乎在 Firefox、Chrome 和 IE 上运行良好,尽管我仍然不排除它是特定于浏览器的。

history.pushState({}, '', '#/param1/param2');不过你应该使用。

实际上,您可能想考虑history根本不使用哈希标签,而是location.hash改为使用。

你可以这样使用它:

locaction.hash = '/param1/param2'
Run Code Online (Sandbox Code Playgroud)