将MVC2迁移到MVC3:MVCFutures的问题

时间:2010-11-22 16:47:51

标签: asp.net-mvc-3

我正在尝试将MVC2项目迁移到MVC3 - 我已按照发行说明中的​​说明进行操作,应用程序将进行编译,但该项目依赖于位于之前MVCFutures和tosses内的一些助手:

编译器错误消息:CS1061:'System.Web.Mvc.HtmlHelper'不包含'SubmitImage'的定义,并且没有扩展方法'SubmitImage'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你错过了使用指令或汇编引用吗?)

我的解决方案包含一个Lib文件夹,其中包含:

MVCFutures \ Microsoft.Web.Mvc.dll

我在这里有升级选项吗?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

@justSteve, 首先,您可以从codeplex下载MVC3源代码,其中包含MvcFutures代码,然后自己构建新的期货装配。
但是,我愿意打赌你的问题在某个地方缺少使用声明。

确保您的页面具有Microsoft.Web.Mvc的using namespace语句。

如果您正在尝试迁移到Razor(您没有说,但以防万一),您可以在Views文件夹中包含的web.config文件中放置命名空间引用(以避免必须包含在每个视图中使用语句),如下所示:

   <system.web.webPages.razor>
     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
     <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
           <add namespace="System.Web.Mvc" />
           <add namespace="System.Web.Mvc.Ajax" />
           <add namespace="System.Web.Mvc.Html" />
           <add namespace="System.Web.Routing" />
           <add namespace="Microsoft.Web.Helpers" />
           ...
        </namespaces>
     </pages>
  </system.web.webPages.razor>

答案 2 :(得分:0)

您提到您的MVC期货二进制文件位于Lib文件夹中。确保:

  1. 您的项目有对该库的assesmbly引用
  2. 正在将MvcFutures dll复制到bin文件夹
  3. 您的web.config具有对MvcFutures
  4. 的程序集引用

    您是否还可以澄清您所看到的异常是在Visual Studio中编译应用程序时(因为您在控制器或数据模型中使用MVC期货方法)或在浏览器中访问应用程序时(因为您正在使用)在您的观点中的期货)。

    Btw,即MVC 3的MVC Futures升级版即将发布。

    更新:MVC 3 Futures的源代码已在codeplex上提供:http://aspnet.codeplex.com/releases/view/58781所以你可以自己编译。

答案 3 :(得分:0)

要升级您的观点,您可能需要从Telerik尝试此...

https://github.com/telerik/razor-converter

...它会将您的网页表格视图转换为剃刀。

此致