我在后面的代码中公开声明了Dictonary
:
Public dics As New Dictionary(Of String, String()) From { _
{"picture", New String() {".jpeg", ".jpg", ".png", ".bmp", ".gif", ".tif"}}, _
{"document", New String() {".doc", ".docx", ".txt", ".htm", ".html", ".xml", ".xaml", ".css"}}, _
{"excel", New String() {".xls", ".xlsx", ".xlt", ".xla"}}, _
{"pdf", New String() {".pdf"}}, _
{"zip", New String() {".7z", ".APK", ".BAT", ".rar", ".dll", ".jar", ".zip"}}, _
{"ppt", New String() {".ppt", ".pos", ".pps"}}}
修改:
如果我喜欢这个
function myFunction() {
var dic = "<%= dics %>";
var array_keys = new Array();
var array_values = new Array();
for (var key in dic) {
alert(key);
}
}
会将警告显示为
如何在Dictonary
中访问此javascript
以执行某些操作
答案 0 :(得分:3)
现在看起来您需要将字典序列化为javascript对象,然后将其粘贴到JavaScript中。您可以使用任何库进行序列化。例如。 Newtosoft.Json。像这样:
function myFunction() {
var dic = <%= Newtonsoft.Json.JsonConvert.SerializeObject(dics) %>;
var array_keys = new Array();
var array_values = new Array();
for (var key in dic) {
alert(key);
}
}
请注意,我删除了引号。
但我建议你摆脱这种方法,不要混用JavaScript和ASP.Net代码。 所以在我的视野中你应该通过AJAX加载这个字典,或者如果不可能将ASP.Net放在其他地方。 E.g:
查看:
<input type="hidden" id="dictionaryInput" value="<%=Newtonsoft.Json.JsonConvert.SerializeObject(dics)%> />
JavaScript的:
function myFunction() {
var dicInput = document.getElementById('dictionaryInput');
var dic = JSON.parse(dicInput.value);
var array_keys = new Array();
var array_values = new Array();
for (var key in dic) {
alert(key);
}
}
希望它会有所帮助。
答案 1 :(得分:0)
您可以在后面的代码中创建一个属性(比如DictionaryConv),并在页面加载中设置该属性值。
Dim jsz As New System.Web.Script.Serialization.JavaScriptSerializer
DictionaryConv = jsz.Serialize(dics)
在javascript中使用此功能。
function myFunction() {
var dic = <%= DictionaryConv%>;
var array_keys = new Array();
var array_values = new Array();
for (var key in dic) {
alert(key);
}
}