我正在尝试将MVC2项目迁移到MVC3 - 我已按照发行说明中的说明进行操作,应用程序将进行编译,但该项目依赖于位于之前MVCFutures和tosses内的一些助手:
编译器错误消息:CS1061:'System.Web.Mvc.HtmlHelper'不包含'SubmitImage'的定义,并且没有扩展方法'SubmitImage'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数可以找到(你错过了使用指令或汇编引用吗?)
我的解决方案包含一个Lib文件夹,其中包含:
MVCFutures \ Microsoft.Web.Mvc.dll
我在这里有升级选项吗?
答案 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文件夹中。确保:
您是否还可以澄清您所看到的异常是在Visual Studio中编译应用程序时(因为您在控制器或数据模型中使用MVC期货方法)或在浏览器中访问应用程序时(因为您正在使用)在您的观点中的期货)。
Btw,即MVC 3的MVC Futures升级版即将发布。更新:MVC 3 Futures的源代码已在codeplex上提供:http://aspnet.codeplex.com/releases/view/58781所以你可以自己编译。
答案 3 :(得分:0)