我有一个网络请求,它返回一个 html 响应,其中包含带有隐藏字段的表单,以及一些在页面加载时自动提交表单的 javascript(如果这是在浏览器中运行的话)。
如果我将此文件另存为 *.html 并在浏览器中运行此文件,java 脚本代码会自动发布表单并输出为 excel 文件。
我希望能够从不在浏览器中运行的 C# 代码生成此文件(excel)。
我尝试模拟 thr 表单帖子,但它很复杂,并且基于原始网络请求查询字符串有各种场景。任何指针....我知道不可能从 C# 代码中运行发布表单的 JS 代码,但仍然会考虑检查是否有人这样做了。
最佳答案
如果我正确理解您的问题,您的 Web 服务中的代码会返回一个 HTML 文件,其中包含 javascript,该文件将表单发布到返回 Excel 电子表格的某个位置。我有这个权利吗?
当你的代码变成 Rube Goldberg machine ,您可能需要稍微重构一下。是否有任何原因导致您的原始网络请求无法编写以返回 Excel 电子表格(省去了多个中间人)?
更新:对于 Rube Goldberg 破解感到抱歉 - 我想我现在了解您的情况。
为此,我会远离 WebBrowser
,因为它更像是一个有趣但危险的玩具,而不是复杂机器中的可靠链接。
本质上,您在这里真正需要做的就是解析从初始 Web 请求返回的 HTML 并提取表单值,然后用代码构建您自己的表单并将其提交到返回 Excel 电子表格的 Web 服务。返回的 HTML 中的 JavaScript 实际上对您来说并不重要,因为它的唯一目的是从浏览器提交表单值。
Html Agility Pack看起来是一个不错的选择(我自己从未使用过它,但它似乎是 StackOverflow 上此类问题最常见的答案)。
关于c# - 如何从 .NET 代码运行 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649885/