ASP.NET MVC 方法之间的不明确调用

发布于 2024-08-30 07:43:02 字数 918 浏览 4 评论 0 原文

我是 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

有人知道为什么吗?

I'm pretty new in ASP.NET MVC (about 3 months) and i've the followin issue:

I have a Entity Class called 'Usuario' in a ClassLibrary referenced as 'Core' and, when i create a strongly-typed view and add a html.textboxfor<> like:

<%= Html.TextBoxFor(u => u.Login) %>

it raises the following error:

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

anyone knows why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谢绝鈎搭 2024-09-06 07:43:02

当然,很简单 :)

您可能最近更新了您的 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!

高冷爸爸 2024-09-06 07:43:02

您的 web.config 中提到了多个(至少两个)版本的 MVC 程序集。看看那里。

You have several (at least two) versions of MVC assemblies mentioned in your web.config. Take a look there.

日暮斜阳 2024-09-06 07:43:02

发现问题的方法是从 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文