ASP.Net 2.0 и новый метод RenderAction - PullRequest
1 голос
/ 26 ноября 2009

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

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

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

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

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

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

Я могу решить проблему, заменив строку одной из следующих 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 }); %>

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

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

1 Ответ

4 голосов
/ 26 ноября 2009

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

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

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

HTHS
Charles

...