我使用的是VS 2008 sp1,.net dotfx 3.5 sp1,asp.net mvc beta。我在运行老赵的webcast上提供的基于asp.net mvc preview 5版本的代码的时候,总是报错”CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Mvc”(是否缺少程序集引用?)“。希望能够从原理上解释下或者提供不同版本迁移的方案。谢谢!网上的解决方案是:
处理办法:卸载asp.net mvc beta版,安装asp.net mvc preview 5版本即可。原理分析:ASP.NET web应用程序在运行的时候,首先引用的dll文件是否存在于GAC(windows/assembly文件夹)
,然后检查程序文件的bin文件夹。所以尽管我的应用程序引用的dll文件是指定文件夹位置(非GAC或bin),仍然会引起错误,因为运行时它调用的是GAC下的system.web.mvc.dll文件。       
       这个方法好使,但是不可行,因为asp.net mvc 版本总是在升级的,我不能不升级啊。请教asp.net mvc 往上高版本移植的通用方法。万分感谢!!

解决方案 »

  1.   

    控件是方便,公司要求使用mvc框架的
      

  2.   

    mvc beta的安装包中去掉了microsoft.web.mvc.dll,已经将其转移到Dependencies,并更换了引用。
      

  3.   

    1)第一步: 关闭vs,卸载原先安装的mvc版本 mvc preview 5 2)  第二步: 下载安装mvc beta。3)第三步: 修改ucenter.web的web.config文件配置,更新mvc程序集引用。     为:<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    4)第四步:在web.config中配置添加页面的命名空间System.Web.Mvc.Html <add namespace="System.Web.Mvc.Html"/>
      

  4.   

    感谢楼上的说明,我修改的是 ASP.NET MVC框架开发系列课程(13):自定义ViewEngine 中的代码,完全按你的说明操作,可惜结果还是没有成功。出现了下面的结果“/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------找不到方法:“Void System.Web.Mvc.RouteCollectionExtensions.IgnoreRoute(System.Web.Routing.RouteCollection, System.String)”。请再帮忙解答一下。
      

  5.   

    对你saucer感到失望,就算不会也应该回一声啊
      

  6.   

    沒辦法升級的,因為這是在preview階段的技術,只是給研究前沿技術的人深入學習的。除非你是搞深入研究的,否則就等穩定版出來之後再去學習。如果你真的想要提前深入學習preview階段的技術,那麼你就不應該『使用』別人寫好的代碼,而應該深入地去研讀MVC的源代碼。
      

  7.   

    楼上的,asp.net mvc rc 正式版已经出来了。我并非是使用别人写好的代码,我只是举个例子,另外我也在学习这个新东西。因为可能项目中要用到的。我只是寻求一个解决的方法
      

  8.   

    RC版不是正式版...MVC也不是万能的...