MVC C#自定义MvcRouteHandler – 如何?

有没有人有提供自定义MvcRouteHandler的经验?在我的应用程序中,我想实现像http:// mydomain / en / about或http:// mydomain / de / about这样的全球化模式.

至于持久性,我希望在请求到达后立即读取cookie,如果此cookie中有语言设置则应用它(因此到达http:// mydomain /的用户将被转移到http:/ / mydomain / en /例如).如果没有cookie,我想获得浏览器支持的第一种语言,应用此语言并将其存储在此cookie中.

我想这不能用mvc在其初始项目模板中提供的标准路由机制来完成.在新闻组中,我得到了一个提示,看看MvcRouteHandler并实现我自己的.但很难找到如何做到这一点的样本.

有任何想法吗?

解决方法

我不相信你正在做的事情需要自定义路由处理程序.

对于“全球化”URI,常规MVC路由具有“locale”参数必须等于“en”,“de”等的约束.约束将阻止非全球化URI匹配路由.

对于“非全局化”URI,创建一个“全包”路由,它只是重定向到默认或cookie设置的语言环境URI.

将“全局化”路由放在Global.asax中的“catch-all”路由之上,以便“已经全球化”的URI不会落入重定向.

如果您希望某个URI模式触发某个不是控制器上的操作的内容,则需要创建一个新的路由处理程序.但我不认为这就是你要处理的问题.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...