Вопрос

У меня есть сборка веб-сайта для публикации с помощью MOSS 2007, и мне нужно программно получить содержимое страницы.Я знаю, что могу использовать WebClient, чтобы отправить запрос на страницу, а затем проанализировать текст ответа.Но я хочу сделать это в модели SharePoint, поскольку масштаб довольно велик.

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

Код:

родовое слово

Вывод:

родовое слово

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

Это было полезно?

Решение

Это просто не сработает.Веб-части требуют правильного кода SPContext, который настраивается во время обработки HTTP-запроса в конвейере ASP.NET.Нет простого ответа, как это преодолеть.По сути, вам нужно будет смоделировать HTTP-запрос к странице, которую необходимо отобразить в памяти.


Кроме того, это выражение part.GetType() == new DataFormWebPart().GetType() далеко от идеала.Скорее используйте part.GetType() == typeof(DataFormWebPart), чтобы предотвратить создание экземпляров и возможные нежелательные побочные эффекты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top