首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC C#自定义MvcRouteHandler -如何?

MVC C#自定义MvcRouteHandler -如何?
EN

Stack Overflow用户
提问于 2008-09-17 17:11:28
回答 2查看 2.3K关注 0票数 4

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

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

我想这不能用mvc在它的初始项目模板中提供的标准路由机制来完成。在一个新闻组中,我得到了查看MvcRouteHandler并实现自己的消息的技巧。但是很难找到一个关于如何做到的样本。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-17 17:55:42

我不认为您正在做的事情需要一个自定义的路由处理程序。

对于您的“全球化”URI来说,这是一个常规的MVC路由,它的约束条件是"locale“参数必须等于"en”、"de“等。该约束将阻止非全球化URI匹配路由。

对于“非全球化”URI,创建一个“所有捕获”路由,该路由简单地重定向到默认的或cookie设置的地区URI。

将“全球化”路由置于Global.asax中的“所有捕获”路由之上,这样“已经全球化”的URI就不会落入重定向的轨道。

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

票数 2
EN

Stack Overflow用户

发布于 2008-09-17 17:49:04

您应该能够使用ASP.NET MVC的默认模板来实现这一点,我正在做类似的事情。只需将路由构建为{language}/{控制器}/{action}/{id}

只需设置一个默认路径,该路由将发送到一个控制器,该控制器检查语言cookie,并根据该cookie重定向用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/85470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档