Неоднозначный вызов между методами ASP.NET MVC - PullRequest
1 голос
/ 25 апреля 2010

Я довольно новичок в ASP.NET MVC (около 3 месяцев), и у меня есть следующая проблема:

У меня есть класс сущности под названием «Usuario» в ClassLibrary, на который ссылается «Core», и когда я создаю строго типизированное представление и добавляю 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

кто-нибудь знает почему?

Ответы [ 3 ]

2 голосов
/ 25 апреля 2010

Конечно, просто:)

Возможно, вы недавно обновили свою версию MVC 2. В вашем веб-проекте есть ссылка на Microsoft.Web.Mvc (сборка MVC Futures).

Некоторые из методов были перенесены в сборку ядра, что делает ненужной ссылку на Microsoft.Web.Mvc. Вы можете легко удалить его сейчас:)

Кстати ... Некоторые методы не были перемещены, например, помощники Html.Css / Html.Script. Но если вы их не использовали - все будет в порядке :) Кроме того, вы можете попробовать обновить библиотеку Microsoft.Web.Mvc, если она вам все еще нужна. Полагаю, они бы удалили эти методы из библиотеки Futures после официального релиза!

1 голос
/ 26 августа 2011

Проблема заключается в том, что вы загружаете MVCDiagnostics либо из codeplex, либо лучше, используя Nuget.

http://haacked.com/archive/2010/12/05/asp-net-mvc-diagnostics-using-nuget.aspx

Как только вы запустите его в своем браузере следующим образом: http://localhost:61839/MvcDiagnostics.aspx

Вы увидите в красном цвете проблему (которая для меня выглядела так): Информация о сборке фьючерсов ASP.NET MVC (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 недоступна. Предварительные версии сборки MVC Futures больше не доступны, когда эта версия ASP.NET MVC перешла в окончательную первоначальную версию.

Версия сборки: ASP.NET MVC 2 RTM Futures (2.0.50217.0) Полное имя: Microsoft.Web.Mvc, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = ноль База кода: файл: /// C: /dev/20110630_OVR_MVC3/OVR_MVC3/OVR/bin/Microsoft.Web.Mvc.DLL Развертывание: развернутый бин

1 голос
/ 25 апреля 2010

У вас есть несколько (как минимум две) версии сборок MVC, упомянутых в вашем файле web.config. Взгляните туда.

...