如何将 JSON 数组传递给 C# WebBrowser 控件中的 javascript 函数?
How can I pass a JSON array to a javascript function in the C# WebBrowser Control?
我的 HTML 文档中有以下 javascript 函数:
function jsFunction(string, jsonArray, string) { ... }
jsonArray
的示例如下:
[
{"name":"foo", "value":"21980"},
{"name":"bar", "value":"100"},
{"name":"foo", "value":"27492328"},
{"name":"bar", "value":"WEB21980001831"}
]
我按照 post“Creating an JSON array in C#”中的说明在 C# 中创建了一个 JSON 数组对象。
从我的 Windows 表单中,我应该能够像这样调用 JavaScript 函数:
Object[] jsParams = new Object[3];
jsParams[0] = (Object)"test";
jsParams[1] = new
{
items = new[] {
new {name = "foo" , value = "21980"},
new {name = "bar" , value = "100"},
new {name = "foo" , value = "27492328"},
new {name = "bar" , value = "WEB21980001831"}
}
};
jsParams[2] = (Object)"test";
this.webBrowserCtl.Document.InvokeScript("jsFunction", jsParams);
然而,它不起作用。
我是不是忘记了什么?
jsFunction 是 3 个参数。
function jsFunction(string, jsonArray, string) { ... }
你发送了 4 个参数。
jsParams[0] = (Object)"test";
jsParams[1] = new
{
items = new[] {
new {name = "foo" , value = "21980"},
new {name = "bar" , value = "100"},
new {name = "foo" , value = "27492328"},
new {name = "bar" , value = "WEB21980001831"}
}
};
jsParams[2] = (Object)"content";
jsParams[3] = (Object)"test";
删除这一行。
//jsParams[3] = (Object)"test";
解析jsonArray并在jsFunction中使用。
var data = JSON.parse(jsonArray );
我的 HTML 文档中有以下 javascript 函数:
function jsFunction(string, jsonArray, string) { ... }
jsonArray
的示例如下:
[
{"name":"foo", "value":"21980"},
{"name":"bar", "value":"100"},
{"name":"foo", "value":"27492328"},
{"name":"bar", "value":"WEB21980001831"}
]
我按照 post“Creating an JSON array in C#”中的说明在 C# 中创建了一个 JSON 数组对象。
从我的 Windows 表单中,我应该能够像这样调用 JavaScript 函数:
Object[] jsParams = new Object[3];
jsParams[0] = (Object)"test";
jsParams[1] = new
{
items = new[] {
new {name = "foo" , value = "21980"},
new {name = "bar" , value = "100"},
new {name = "foo" , value = "27492328"},
new {name = "bar" , value = "WEB21980001831"}
}
};
jsParams[2] = (Object)"test";
this.webBrowserCtl.Document.InvokeScript("jsFunction", jsParams);
然而,它不起作用。 我是不是忘记了什么?
jsFunction 是 3 个参数。
function jsFunction(string, jsonArray, string) { ... }
你发送了 4 个参数。
jsParams[0] = (Object)"test";
jsParams[1] = new
{
items = new[] {
new {name = "foo" , value = "21980"},
new {name = "bar" , value = "100"},
new {name = "foo" , value = "27492328"},
new {name = "bar" , value = "WEB21980001831"}
}
};
jsParams[2] = (Object)"content";
jsParams[3] = (Object)"test";
删除这一行。
//jsParams[3] = (Object)"test";
解析jsonArray并在jsFunction中使用。
var data = JSON.parse(jsonArray );