C#winforms应用程序中的动态网页
我有一个winforms应用程序,我想添加一些新功能 理想情况下,我会有一个新的形式,将有一个嵌入式浏览器控件。我希望浏览器中的页面由应用程序本身“服务”(而不是远程服务器) 页面将根据应用程序中的数据动态创建 此外,我如何满足对CSS、Javascript和图像文件等资产的引用。理想情况下,这些问题也需要由应用程序处理 如何执行此操作?使用控件 您可以将属性设置为要显示的HTML。(谢谢@Anton Semenov)C#winforms应用程序中的动态网页,c#,browser,webserver,C#,Browser,Webserver,我有一个winforms应用程序,我想添加一些新功能 理想情况下,我会有一个新的形式,将有一个嵌入式浏览器控件。我希望浏览器中的页面由应用程序本身“服务”(而不是远程服务器) 页面将根据应用程序中的数据动态创建 此外,我如何满足对CSS、Javascript和图像文件等资产的引用。理想情况下,这些问题也需要由应用程序处理 如何执行此操作?使用控件 您可以将属性设置为要显示的HTML。(谢谢@Anton Semenov) 或者,您可以从应用程序创建的文件向其提供本地文件URL。我在应用程序中使用这
或者,您可以从应用程序创建的文件向其提供本地文件URL。我在应用程序中使用这种技术。我托管了一个
WebBrowser
,并按如下方式填充它:
public void DisplayHtml(HtmlGenerator gen)
{
webBrowser.DocumentText = gen.GenerateHtmlString());
}
使用这种方法,我实际上不必在我的文件系统中生成包含HTML内容的文件。在我的测试管理工具中(,如果允许添加链接),我编写了自己的“迷你ASP”,方法是将包含C代码的HTML页面放入其中,然后通过将页面转换为C代码动态处理它们,然后执行它 请注意,这可能会填充应用程序域,因为您无法卸载动态加载的脚本代码 此类HTML文件的摘录如下所示:
<div id="title">
<img src="../_Shared/images/32x32/component_blue_view.png" />
<h1>Test case "[$=tc.Title$]" - Details</h1>
</div>
测试用例“[$=tc.Title$]”-详细信息
这里,[$=
和$]
是
的等价物
在另一个项目中,我用微软的VBScript解释器做了类似的事情;我没有将代码编译为C#,而是将其编译为VBScript,然后由Microsoft脚本主机的VBScript引擎执行
要处理图像和CSS等资源,只需提供自己的集成web服务器即可。我在几个项目中成功地做到了这一点,包括这个。还可以使用
DocumentText
属性将动态生成的文本设置为WebBrowser控件。请参阅此处的详细信息-是的,这可能会起作用,但我确实在寻找一种方法,使应用程序能够处理所请求的URL并动态创建HTML。@BENBUN Coder-请将这些详细信息添加到问题中。如果你想得到一个适合这些需求的答案,这是相当重要的。不管怎样,我不明白为什么这个建议行不通。对不起,Oded,我现在添加了更多细节。