ASP.NET MVC - 全局添加/重写路由数据
我有相当大的 ASP.NET MVC 2 应用程序(多个区域,每个区域都有自己的路由注册),使用如下路由:
/Item/12345/Detail - 其中 12345 是项目的 ID。整个应用程序仅依赖于该数字 ID。但现在有一个要求(seo 东西)使 URL 看起来像这样:
/Item/item-unique-string-name/Detail
我希望在一些高级别的全局处理这个问题 - 例如在路由评估之前加载数字 ID 和在路线数据中“替换”它。但我不确定这样的黑客攻击的正确位置是什么 - 自定义 MvcHandler、自定义 IRouteHandler 还是其他地方?对此有什么想法吗? :)
i have quite big ASP.NET MVC 2 application (multiple areas, each with own routing registration) using routes like this :
/Item/12345/Detail - where 12345 is the ID of the item. The whole application just rely on that numeric IDs. But now there is an requirement (seo stuff) to make URLs look like this :
/Item/item-unique-string-name/Detail
I would love to handle this globally in some high level - for example load numeric ID before route evaluation and "replace" it in route data. But i am not sure what is the right spot for such a hack - custom MvcHandler, custom IRouteHandler, somewhere else ? any ideas about this ? :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
嘿嘿,最后我自己想通了
我所要做的就是像这样重写 BaseController 的执行方法:
所以毕竟不需要对路由进行黑客攻击:)
Hey, i figured it out by myself eventually,
all i had to do was override execute method of my BaseController like this :
So no hacking of routing needed after all :)