ASP.Net 2.0 и новый метод RenderAction

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

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

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

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

Сообщение об ошибке компилятора: CS0121: вызов неоднозначен между следующими методами или свойствами:

'System.Web.Mvc.Html.ChildActionExtensions.RenderAction (System.Web.Mvc.HtmlHelper, string, string, object)' и 'Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string, строка, объект) '

Я могу решить проблему, заменив строку одним из следующих двух вариантов:

<% 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 }); %>

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

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

1 ответ

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

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

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

HTHS,
Чарльз

Другие вопросы по тегам