我正在使用其管理界面使用MVC 1.0的内容管理系统。我想使用MVC 2构建站点的公共部分。
如果我只是在我的项目中引用System.Web.Mvc版本2,则管理模式不起作用,因为对管理界面中的视图创建的System.Web.Mvc.ViewPage的引用不明确:
类型'System.Web.Mvc.ViewPage'不明确:它可能来自程序集'C:\ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 2.0.0.0__31bf3856ad364e35 \ System.Web.Mvc.dll '或从程序集'C:\ Windows \ assembly \ GAC_MSIL \ System.Web.Mvc \ 1.0.0.0__31bf3856ad364e35 \ System.Web.Mvc.dll'。请在类型名称中明确指定程序集。
我可以通过使用绑定重定向来指定应始终使用MVC 2,从而轻松解决此问题。不幸的是,内容管理系统管理模式与MVC 2不兼容。我不确定为什么,但是当我尝试它并且CMS的开发人员已经确认时,我开始在其中一些操作中获得一堆空引用异常它(还)与MVC 2不兼容。
通过domain.com/admin访问的管理界面实际上并不位于webroot / admin中,而是位于服务器上的程序文件文件夹中,而domain.com/admin则使用虚拟路径提供程序进行路由。因此,在admin文件夹中放置一个单独的web.config文件,为该站点的那一部分指定不同版本的System.Web.Mvc,这不是一个选项,因为在使用共享主机时它不会飞。
任何人都可以看到这个问题的解决方案吗?也许可以指定对于某些程序集应该使用不同版本的引用程序集?
答案 0 :(得分:1)
我们遇到了类似的问题。我们的大多数应用程序都使用MVC 3.0。我们正在使用一个使用MVC 1.0的内容管理系统。我们遇到了兼容性问题,因为我们试图引用内容管理系统中的一个应用程序组件。当我们将两个版本的MVC都放入GAC时,这就解决了这个问题。
答案 1 :(得分:0)
为什么不为自己省去痛苦并将MVC 1用于您的公共网站?最终用户不会知道任何差异,MVC 1确实没有任何问题