C#winforms应用程序中的动态网页

时间:2011-04-06 14:45:11

标签: c# browser webserver

我有一个winforms应用程序,我想添加一些新功能。

理想情况下,我会有一个具有嵌入式浏览器控件的新表单。我希望浏览器中的页面可以从应用程序本身“提供”(而不是远程服务器)。

将根据App中的数据动态创建页面。

另外,我如何迎合CSS,Javascript和Image文件等资源的引用。理想情况下,这些也需要由应用程序处理。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

使用WebBrowser控件。

您可以将DocumentText属性设置为要显示的HTML。 (感谢@Anton Semenov)。

或者,您可以从应用程序创建的文件中提供本地文件URL。

答案 1 :(得分:1)

我在我的应用程序中使用此技术。我主持了WebBrowser,我填写如下:

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

使用此方法,我不必使用HTML内容在文件系统上实际生成文件。

答案 2 :(得分:0)

在我的测试管理工具(this one中,如果我被允许添加链接),我已经编写了自己的“迷你ASP”,其中包含带有C#代码的HTML页面,然后通过转换动态处理它们将页面转换为C#,compiling the code然后执行它。

请注意,这可能会填充应用程序域,因为您无法卸载动态加载的脚本代码。

此类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,然后由Microsoft Scripting主机的VBScript引擎执行。

要处理图像和CSS等资源,您只需发送自己的集成Web服务器即可。我通过包含此CodePlex project成功完成了多个项目。