Динамические веб-страницы в приложении C # winforms - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть приложение winforms, в которое я хотел бы добавить некоторые новые функции.

В идеале у меня была бы новая форма со встроенным элементом управления браузером.Я хочу, чтобы страницы в браузере «обслуживались» из самого приложения (в отличие от удаленного сервера).

Страницы будут создаваться динамически в зависимости от данных из приложения.

Кроме того, как мне обслуживать ссылки на ресурсы, такие как CSS, Javascript и файлы изображений.В идеале они должны обрабатываться приложением.

Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 06 апреля 2011

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

public void DisplayHtml(HtmlGenerator gen)
{
        webBrowser.DocumentText = gen.GenerateHtmlString());
}

Используя этот метод, мне не нужно создавать файл в моей файловой системе с содержимым HTML.

1 голос
/ 06 апреля 2011

Используйте элемент управления WebBrowser.

Вы можете установить свойство DocumentText для HTML, который вы хотите отобразить. (спасибо @Антон Семенов).

Кроме того, вы можете передать ему локальные URL-адреса файлов из файлов, создаваемых вашим приложением.

0 голосов
/ 09 апреля 2011

В моем инструменте управления тестами ( этот , если мне разрешено добавлять ссылку), я написал свой собственный "мини ASP", содержащий HTML-страницы с кодом C # внутри и затем обрабатывая их динамически путем преобразования страницы в C #, , компиляции кода и последующего его выполнения.

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

Выдержка из такого HTML-файла выглядит так:

<div id="title">
    <img src="../_Shared/images/32x32/component_blue_view.png" />
    <h1>Test case &quot;[$=tc.Title$]&quot; - Details</h1>
</div>

Здесь [$= и $] являются эквивалентами <%= и %>.

В другом проекте я сделал нечто похожее с интерпретатором Microsoft VBScript; вместо того, чтобы компилировать код в C #, я компилирую его как VBScript и позволяю ему затем выполняться механизмом VBScript хоста Microsoft Scripting.

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

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