c# - 在带有参数的winforms webbrowser控件中从JS调用C#方法时出错

标签 c# javascript .net winforms webbrowser-control

我正在尝试从类似于以下内容的 Web 浏览器控件中打开的页面调用 winform 上的 C# 方法:

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting%28v=vs.110%29.aspx

在我的 winform 上我有这个方法:

    public void Test(String message)
    {
        MessageBox.Show(message, "client code");
    }

在我的网页上我正在调用: window.external.Test('从脚本代码调用');

当我尝试调用它时,我收到一个 javascript 错误:“无效的过程调用或参数”

但是,当我修改表单的方法以不带参数(例如 public void Test())并相应地进行不带参数的 javascript 调用时,它可以正常工作。我仅在尝试传递参数(我需要这样做)时遇到问题。

更多信息: 我的表单类上确实有以下属性:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]

我正在分配 ObjectForScripting:

webBrowser1.ObjectForScripting = this;

调试时似乎没有进入表单方法 block 。

我一定错过了一些简单的东西。

最佳答案

愚蠢的错误。我正在评估该函数并不像您通常在从代码的其他部分调用函数之前那样未定义。由于某种原因,这个评估是引发错误的地方,而不是调用本身(实际上没问题)。

关于c# - 在带有参数的winforms webbrowser控件中从JS调用C#方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476984/

相关文章:

c# - Linq to SQL 数据上下文 : how to load data?

c# - Debug.Assert 有时不起作用

c# - .NET:ListView 蓝调?

javascript - 多个元素的条件渲染

javascript - 组件在 EXTJS 中失去焦点

javascript - 按属性对对象中的列表进行分组

.net - msbuild有编译器吗?

javascript - GeckoFX:脚本耗时太长对话框

c# - WPF如何创建选项卡项

C# 将位图转换为索引颜色格式