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

时间:2014-05-05 16:09:49

标签: 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('called from script code');

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

然而,当我修改我的表单方法不带参数(如public void Test())并因此在没有参数的情况下进行javascript调用时,它可以正常工作。我在尝试传递参数时遇到问题(我需要这样做)。

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

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

我正在分配ObjectForScripting:

webBrowser1.ObjectForScripting = this;

调试时,它似乎不会进入表格方法块。

我必须遗漏一些简单的东西。

1 个答案:

答案 0 :(得分:0)

愚蠢的错误。我正在评估函数没有像往常一样在从代码的其他部分调用函数之前。出于某种原因,这个评估是提出错误的地方,而不是调用本身(实际上是好的)。