【发布时间】:2014-06-22 00:30:26
【问题描述】:
我正在尝试从在 Web 浏览器控件中打开的页面调用我的 winform 上的 C# 方法,类似于:
在我的 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;
调试时似乎没有进入表单方法块。
我一定错过了一些简单的东西。
【问题讨论】:
-
为什么不在您的服务器上进行 ajax 调用?这会简单得多。
-
“无效的过程调用或参数”听起来不像 JS 错误..
-
以下工作正常:stackoverflow.com/a/23441190/1768303。也许,您可以找出其中的区别。
标签: c# javascript .net winforms webbrowser-control