RenderPartial не может быть преобразован в строку - PullRequest
2 голосов
/ 11 мая 2010

Я работаю с элементом управления Telest MVC Tabstrip и у меня возникла проблема, хотя я подозреваю, что проблема заключается скорее в моем незнании того, как правильно использовать лямбда-выражения и помощники MVC, а не в действительности для Telerik.

Мой вызов помощника такой:

<% Html.Telerik().TabStrip()
        .Name("BusinessDetailsTabs")
        .Items(parent =>
        {
            parent.Add()
                .Text("Facilities")
                .Content(() =>
                {%>
                    <%= Html.RenderPartial("~/Views/Shared/DisplayTemplates/BusinessRelations/FacilityGrid.ascx", new FacilitiesViewModel {Entities = Model.Facilities}) %>
                <%});

        })
        .Render();
%>

Проблема в том, что подпись метода Add().Content равна Content(string foo) и, по-видимому, способ, которым я вызываю RenderPartial, просто не работает - я получаю следующее исключение: Сообщение об ошибке компилятора: CS1660: Невозможно преобразовать лямбда-выражение в тип 'string', потому что это не тип делегата

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

1 Ответ

4 голосов
/ 11 мая 2010

Изменить на

<% Html.Telerik().TabStrip()
        .Name("BusinessDetailsTabs")
        .Items(parent =>
        {
            parent.Add()
                .Text("Facilities")
                .Content(() =>
                {
                    Html.RenderPartial("~/Views/Shared/DisplayTemplates/BusinessRelations/FacilityGrid.ascx", new FacilitiesViewModel {Entities = Model.Facilities});
                });

        })
        .Render();
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...