2009-11-26 4 views
1

Недавно я перенес проект ASP.Net MVC из MVC 2.0 Preview 2 в MVC 2.0 Beta, а мои обращения к Html.RenderAction нарушены, потому что в MVC 2.0 появился новый метод RenderAction Бета.ASP.Net 2.0 и новый метод RenderAction

В следующей строке:

<% Html.RenderAction("DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %> 

я получаю следующее сообщение об ошибке:

Compiler Error Message: CS0121: The call is ambiguous between the following methods or properties:

'System.Web.Mvc.Html.ChildActionExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string, string, object)' and 'Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string, string, object)'

я могу решить эту проблему, заменив строку с любой из этих 2 вариантов:

<% Microsoft.Web.Mvc.ViewExtensions.RenderAction 
(this.Html, "DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %> 

или

<% System.Web.Mvc.Html.ChildActionExtensions.RenderAction 
(this.Html, "DisplayIMHandles", "UserProfile", new { userProfileId = Model.Id }); %> 

Какой из двух я должен использовать, в чем отличия? Кроме того, есть ли способ исправить проблему, не навязывая целое пространство имен, например, я использовал его?

Заранее спасибо.

ответ

4

Это будет связано с тем, что вы все еще ссылаетесь на библиотеку старых фьючерсов, и теперь, когда она перенесена в основную библиотеку MVC (бета-версия), у вас ее есть в двух местах.

Если вы хотите исправить ошибку, загрузите новую библиотеку фьючерсов, которая предназначена для использования с бета-версией и ссылкой, что в вашем проекте, а не в старом.

Вы можете найти его на сайте ASP.NET CodePlex.

HTH,
Charles

Смежные вопросы