Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#winforms应用程序中的动态网页_C#_Browser_Webserver - Fatal编程技术网

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

C#winforms应用程序中的动态网页,c#,browser,webserver,C#,Browser,Webserver,我有一个winforms应用程序,我想添加一些新功能 理想情况下,我会有一个新的形式,将有一个嵌入式浏览器控件。我希望浏览器中的页面由应用程序本身“服务”(而不是远程服务器) 页面将根据应用程序中的数据动态创建 此外,我如何满足对CSS、Javascript和图像文件等资产的引用。理想情况下,这些问题也需要由应用程序处理 如何执行此操作?使用控件 您可以将属性设置为要显示的HTML。(谢谢@Anton Semenov) 或者,您可以从应用程序创建的文件向其提供本地文件URL。我在应用程序中使用这

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

理想情况下,我会有一个新的形式,将有一个嵌入式浏览器控件。我希望浏览器中的页面由应用程序本身“服务”(而不是远程服务器)

页面将根据应用程序中的数据动态创建

此外,我如何满足对CSS、Javascript和图像文件等资产的引用。理想情况下,这些问题也需要由应用程序处理

如何执行此操作?

使用控件

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


或者,您可以从应用程序创建的文件向其提供本地文件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 &quot;[$=tc.Title$]&quot; - Details</h1>
</div>

测试用例“[$=tc.Title$]”-详细信息
这里,
[$=
$]
的等价物

在另一个项目中,我用微软的VBScript解释器做了类似的事情;我没有将代码编译为C#,而是将其编译为VBScript,然后由Microsoft脚本主机的VBScript引擎执行


要处理图像和CSS等资源,只需提供自己的集成web服务器即可。我在几个项目中成功地做到了这一点,包括这个。

还可以使用
DocumentText
属性将动态生成的文本设置为WebBrowser控件。请参阅此处的详细信息-是的,这可能会起作用,但我确实在寻找一种方法,使应用程序能够处理所请求的URL并动态创建HTML。@BENBUN Coder-请将这些详细信息添加到问题中。如果你想得到一个适合这些需求的答案,这是相当重要的。不管怎样,我不明白为什么这个建议行不通。对不起,Oded,我现在添加了更多细节。