如何将项目从javascript数组获取到asp.net会话

如何将项目从javascript数组获取到asp.net会话,javascript,asp.net,session,Javascript,Asp.net,Session,我有一个javascript列表,我需要将它们保存到MSSQL DB。请提出解决方案?我想带他们到asp.net cs文件与会话 function myFunction() { var chks = document.querySelectorAll("#KitapTurs input[type='checkbox']"); var sayi = chks.length; var userchoise =

我有一个javascript列表,我需要将它们保存到MSSQL DB。请提出解决方案?我想带他们到asp.net cs文件与会话

function myFunction() {
            var chks = document.querySelectorAll("#KitapTurs input[type='checkbox']");
            var sayi = chks.length;
            var userchoise = new Array();//this is my array
            for (var i = 0; i < sayi; i++) {
                if (chks[i].checked) {
                    userchoise.push(chks[i].id);
                }
            }
            for (var i = 0; i < userchoise.length; i++) {
                document.write(userchoise[i] + " / ");
            }
//this is javascript session
            sessionStorage.setItem("userchosed", userchoise);
        };
函数myFunction(){
var chks=document.queryselectoral(“#KitapTurs input[type='checkbox']”);
var sayi=chks.长度;
var userchoise=new Array();//这是我的数组
对于(变量i=0;i

我想将数组保存到asp.net中的DB中,您可以创建一个隐藏字段,并设置要在服务器端获取的值

<input type="hidden" value="" id="DataHolder" name="DataHolder" />
发回页面并在服务器端(.cs)获取值,方法是:


嗯,我想如果你想把这个数组发送到服务器端并处理它

它不能100%清除数据类型。但是我会考虑只向一个网页添加一个Web方法。

那么,你的代码是这样说的:

var userchoise = new Array();//this is my array

 for (var i = 0; i < sayi; i++) {
    if (chks[i].checked) {
       userchoise.push(chks[i].id);
    }
 }

    $.ajax({
        type: "POST",
        url: 'MyWebpageTest.aspx/PassArray',
        data: JSON.stringify({ "MyIdList" : userchoise }),
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        success: function () {
            alert('ok');
        }
    });

所以我认为只是在没有一堆隐藏字段的情况下传递数组,甚至需要设置一个post back?您只需发送数组即可。一个小的Sub(void函数)只将数组发送到服务器,这意味着在这一点上,您可以对数组执行自己喜欢/想要的操作。您没有提到数组是否只是一个“id”列表,或者是否具有某种类型的附加结构。我认为隐藏字段/文本框是可能的,但您必须执行回发,而且无论哪种方式都需要更多的步骤,ajax调用非常简单,类型不仅强大,而且json字符串参数与您在服务器端声明的内容匹配,因此我认为您使用这种方法编写的js代码最少,并且不需要额外的客户端控件-除了jQuery。

您可以使用
获取
将数据从web浏览器发送回服务器上的asp.net页面。该页面可以将数据存储在数据库中。感谢您的评论@Kokodoko。我正在寻找更简单的解决方案。
document.getElementById("DataHolder").value = "userChoiseData;
Request.Form["DataHolder"]
var userchoise = new Array();//this is my array

 for (var i = 0; i < sayi; i++) {
    if (chks[i].checked) {
       userchoise.push(chks[i].id);
    }
 }

    $.ajax({
        type: "POST",
        url: 'MyWebpageTest.aspx/PassArray',
        data: JSON.stringify({ "MyIdList" : userchoise }),
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        success: function () {
            alert('ok');
        }
    });
<WebMethod()>
Public Shared Sub Pass1(MyIdList As Integer())

    For Each v As Integer In MyIdList
        Debug.Print(v)
    Next
    ' code here to write array of id's to database.

End Sub
[WebMethod()]
public static void Pass1(int[] MyIdList)
{
foreach (int v in MyIdList)
    Debug.Print(v);
}