gpt4 book ai didi

javascript - 动态添加 JS 到 ASP.NET 页面并从 JS 获取结果

转载 作者:行者123 更新时间:2023-11-28 02:47:09 24 4
gpt4 key购买 nike

这是我的问题:

客户端给我单独的 JS 文件,这些文件将在用户系统上运行某种检查(浏览器类型、是否启用 cookie?等)以及从此检查返回的可接受值的列表。

我想在用户访问站点时运行每个 JS 文件,并将结果与​​可接受值列表进行比较,然后提醒用户是否通过了这些要求。

我目前正在使用 RegisterClientScriptBlock() 将 JS 添加到客户端页面,因此它正在运行,但我在将结果值从 JS 获取回 ASP.NET 以便进行比较时遇到问题。

我尝试过使用隐藏字段,JS 将值转储到其中,ASP.NET 将从中读取,但我很难按需生成隐藏字段(因为我不知道客户端有多少个 Js 文件)可以)并让它们在 ASP.NET 代码中工作。

任何帮助或正确方向的建议都会很棒,谢谢!

最佳答案

我要做的是将结果作为 KeyValuePair 对象的数组,然后将其序列化为 JSON。因此,您可以像这样创建 javascript 对象类型:

function KeyValuePair(key, value){
this.Key = key;
this.Value = value;
}

然后您将构建一个 KeyValuePairs 数组,如下所示:

//This array is declared in the global scope 
var ValueArray = new Array();

function someFunction(){
//this assumes that the key and value variables are created earlier in the function
var valueToStore = new KeyValuePair(key, value);
ValueArray[ValueArray.length] = valueToStore;
}

因此,当您完成所有检查后,您将使用 json2 serializer将数组序列化为 json 以存储在隐藏字段中。

var jsonToSaveToHiddenField = JSON.stringify(ValueArray);
//Logic to store resulting json and trigger the serverside evaluation here

在服务器端,您可以使用 JavascriptSerializer 将 json 反序列化为 KeyValuePairs 数组。这是相关的 msdn 文档:JavaScriptSerializer Class Reference

因此,通过这种方法,您只需要一个隐藏字段。因此,您不需要动态创建它,这应该会大大简化服务器端检索。

上面的代码应该可以进行最小的更改,但是我还没有通过编译器运行它,因此可能存在一些预设的小语法错误。

关于javascript - 动态添加 JS 到 ASP.NET 页面并从 JS 获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com