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,
Чарльз