none
asp.net mvc 通过 route 把参数注册为二级域名的问题 RRS feed

  • 问题

  • 这可能是个老问题了,但我之前没有涉及到这一块,最近有个项目有多个area,每个area下都有一个homecontroller,只是命名空间不一样,用传统的路由,不加二级域名的时候,通过namespace可以正确区分是那个area下的操作.为了使用动态二级域名的功能,在博客园上找了一些资料(domainroute类),可使用domainroute的时候,不能正确处理,我分析了一下,注册路由的时候可以使用MapRoute方法,或者使用Routes.add添加,虽然都是添加到了路由的最顶端,但maproute的时候可以正确处理其中一个参数:namespace,而是用 routes.add 时不能.

    博客园上的文章:ASP.NET MVC 实现二级域名

    这样的问题可以解决吗?或者有没有更好的方法来处理呢!


    MVC 深入研究 博客:http://www.cnblogs.com/DoduNet/
    MvcMovieStore 示例网站:MVC 影视 http://MvcMovie.cn/

    2014年7月3日 19:07

答案

全部回复

  • 你好,

    关于动态二级域名,你可以参考下面的链接:

    http://www.cnblogs.com/wenthink/archive/2013/04/10/MvcDynamicSecondaryDomain.html

    • 已标记为答案 Dodu.NET 2014年7月4日 13:30
    2014年7月4日 5:57
  • 你好,其实最早开始使用动态二级域名的时候我就是参考的这个。

    但是现在有个问题,就是上面我说的:

    使用自定义类:domainroute 来完成二级域名动态数据的设置和获取,注册路由的时候必须使用 routes.add 方法来实现,而不能使用maproute静态注册。项目中有多个area,每个area都有单独的namespace,而每个area下都有一个homecontroller,问题是,使用 routes.add 方法注册的路由时,这个时候会提示错误,路由找不到与只对应的homecontroller,因为项目中存在多个homecontroller;但使用maproute静态注册路由的时候,不存在这个问题。(说明:两种方法中都使用了 namespace 来设置搜索控制器的路径。)


    MVC 深入研究 博客:http://www.cnblogs.com/DoduNet/
    MvcMovieStore 示例网站:MVC 影视 http://MvcMovie.cn/

    2014年7月4日 10:21
  • 谢谢了,现在已经解决了,在GetRouteData中,没有把{subdomain}和namespace写入到datatokens中,今天忙活了一整天,总算有些收获...
    • 已编辑 Dodu.NET 2014年7月4日 13:30 问题解决了
    • 已标记为答案 Dodu.NET 2014年7月4日 13:30
    2014年7月4日 10:22