c# - 如何从 .NET 代码运行 javascript?

标签 c# javascript

我有一个网络请求,它返回一个 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/

相关文章:

javascript - 解析 JSON 文件时 undefined reference

c# - 现有网站 + BugNET + YAF ASP.NET 成员(member)集成

c# - C++ RSA 使用 XML key 加密/解密

javascript - 理解 JavaScript 中使用\S 的 REGEX 怪癖

javascript - 如何在 Vue(Nuxt js)中以 5 秒的间隔更改随机文本

javascript - 动态变量增量

javascript - 获取dom中的元素

c# - Xamarin.Forms 中的错误 "Frame not in module."- Android 项目

c# - 如何使用 Roslyn 查找属性构造函数参数的值?

c# - Asp.net 将参数添加到 url 字符串