c# - 在 WebBrowser 控件中将字符串数组从 JS 传递到 C#

标签 c# winforms com interop

我正在使用 ObjectForScripting 属性与 WebBrowser 控件内的网页交互,一切正常,除了我不知道如何将字符串数组传回 C#

HTML代码

<input type="submit" onclick="window.external.save(Array('test', 'test2'))" />

表格

// Returns System.__ComObject
public void Save(object parameters)
{
}

// Throws an exception
public void Save(object[] parameters)
{
}

// Also throws an exception
public void Save(string[] parameters)
{
}

最佳答案

与其抗争,不如与它抗争;也许从另一个角度来解决这个问题......你可以(而不是其中之一):

  • 分隔数据(使用 Array.join)并传递一个单个 字符串,并在 C# 中拆分它 (string.Split)
  • 多次调用 Save,每次接受一个字符串 (Save(string s)),然后调用 final方法实际提交更改

关于c# - 在 WebBrowser 控件中将字符串数组从 JS 传递到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776953/

相关文章:

c++ - 在 C++ 中触发 COM 事件 - 同步还是异步?

c# - 有没有办法知道电子邮件是否已通过 C# 成功中继?

c# - 共享滚动位置、共享数据源但不同步滚动位置的两个数据网格

windows - 如何使用命令行更改 DCOM 设置

c# - 将 TreeView 的内容保存到文件并稍后加载

c# - 全屏应用程序选项(隐藏应用程序标题栏)

c# - 将 JPEG 图像转换为字节数组 - COM 异常

c# - 逐级实现回退

c# - AngularJs 路由、MVC6/vNext/.NET5 和 MVC View

c# - 在最小 API 中将参数设置为 .NET Core 中的可选参数