ASP.NET MVC 方法之间的不明确调用
我是 ASP.NET MVC 的新手(大约 3 个月),并且遇到以下问题:
我在引用为“Core”的 ClassLibrary 中有一个名为“Usuario”的实体类,并且当我创建强类型视图时并添加一个 html.textboxfor<>就像:
<%= Html.TextBoxFor(u => u.Login) %>
它会引发以下错误:
Error 3 The call is ambiguous between the following methods or properties:
'Microsoft.Web.Mvc.ExpressionInputExtensions.TextBoxFor<Core.Usuario,string>(System.Web.Mvc
.HtmlHelper<Core.Usuario>,
System.Linq.Expressions.Expression<System.Func<Core.Usuario,string>>)' and
'System.Web.Mvc.Html.InputExtensions.TextBoxFor<Core.Usuario,string>(System.Web.Mvc.HtmlHel
per<Core.Usuario>, System.Linq.Expressions.Expression<System.Func<Core.Usuario,string>>)'
d:\Documents\Visual Studio
2008\Projects\GuiPereiraMVC2\GuiPereiraMVC2\Views\Gestao\Index.aspx 20 25
GuiPereiraMVC2
有人知道为什么吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当然,很简单 :)
您可能最近更新了您的 MVC 2 版本。
在您的 Web 项目中,您可以引用 Microsoft.Web.Mvc(MVC Futures 程序集)。
其中的一些方法已移至核心程序集,从而无需引用 Microsoft.Web.Mvc。您现在可以轻松删除它:)
顺便说一句..有些方法尚未移动,例如 Html.Css / Html.Script 帮助程序。但如果你没有使用它们 - 你会没事的:)
另外,如果您仍然需要,您可以尝试更新 Microsoft.Web.Mvc 库。我想自正式发布以来他们就会从 Futures 库中删除这些方法!
Sure, simple :)
You probably recently updated your version of MVC 2.
In your web project, you have the reference to Microsoft.Web.Mvc (the MVC Futures assembly).
Some of the methods from it have been moved to the core assembly, making the reference to Microsoft.Web.Mvc unnecessary. You can easily remove it now :)
Btw.. Some of the methods haven't been moved, like the Html.Css / Html.Script helpers. But if you didn't use them - you'll be fine :)
Also, you might try to update your Microsoft.Web.Mvc library if you still need it. I guess they would have removed these methods from the Futures library since the official release!
您的 web.config 中提到了多个(至少两个)版本的 MVC 程序集。看看那里。
You have several (at least two) versions of MVC assemblies mentioned in your web.config. Take a look there.
发现问题的方法是从 codeplex 下载 MVCDiagnostics,或者最好使用 Nuget。
http://haacked.com/archive /2010/12/05/asp-net-mvc-diagnostics-using-nuget.aspx
在浏览器中运行它后,如下所示: http://localhost:61839/MvcDiagnostics.aspx
您将看到红色的问题(对我来说看起来像这样):
ASP.NET MVC Futures 程序集信息 (Microsoft.Web.Mvc.dll)
加载了 ASP.NET MVC 和 ASP.NET MVC Futures 的不匹配或过时版本。
ASP.NET MVC 的加载版本是:未知版本 (3.0.20105.0)
ASP.NET MVC Futures 的加载版本是:ASP.NET MVC 2 RTM Futures (2.0.50217.0)
此版本的 ASP.NET MVC Futures 无法下载。一旦该版本的 ASP.NET MVC 进入 RTM 版本,MVC Futures 程序集的预发行版本将不再可用。
汇编版本:ASP.NET MVC 2 RTM Futures (2.0.50217.0)
全名:Microsoft.Web.Mvc,版本=2.0.0.0,文化=中性,PublicKeyToken=null
代码库: file:///C:/dev/20110630_OVR_MVC3/OVR_MVC3/OVR/bin/Microsoft.Web.Mvc.DLL
部署方式:bin部署
The discover the problem is to download MVCDiagnostics either from codeplex or better yet use Nuget.
http://haacked.com/archive/2010/12/05/asp-net-mvc-diagnostics-using-nuget.aspx
Once you run it in your browser like this: http://localhost:61839/MvcDiagnostics.aspx
You will see in Red color the problem (which for me looked like this) :
ASP.NET MVC Futures Assembly Information (Microsoft.Web.Mvc.dll)
Mismatched or outdated versions of ASP.NET MVC and ASP.NET MVC Futures are loaded.
Loaded version of ASP.NET MVC is: Unknown version (3.0.20105.0)
Loaded version of ASP.NET MVC Futures is: ASP.NET MVC 2 RTM Futures (2.0.50217.0)
A download for this version of ASP.NET MVC Futures is not available. Pre-release versions of the MVC Futures assembly are no longer available once that version of ASP.NET MVC has gone RTM.
Assembly version: ASP.NET MVC 2 RTM Futures (2.0.50217.0)
Full name: Microsoft.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null
Code base: file:///C:/dev/20110630_OVR_MVC3/OVR_MVC3/OVR/bin/Microsoft.Web.Mvc.DLL
Deployment: bin-deployed