在javascript ASP.net中访问会话

时间:2015-02-19 02:43:09

标签: javascript c# jquery asp.net session

我想从asp.net web表单上的JavaScript向会话添加数据。它没有正常运作..

这是我的java脚本方法,它只是从正在运行的文本框中获取数据......

function JavaScriptFunction() {

            var arr = $("input[name='multiple[]']");

            $.each(arr, function (i, item) {
                //alert($(item).val());
                var userName = ($(item).val());
                '<%Session["UserName"] = "' + userName + '"; %>';
                  alert('<%=Session["UserName"] %>');
            });

            PageMethods.setemail("Paul Hayman");
            PageMethods.InsertContacts($(item).val(), "8989",
                    "M0011", OnSucceeded, OnFailed);
        }

但问题是警告框只是显示了这个

' + userName + '

当我添加修改这样的代码时,它会抛出错误userName剂量在当前上下文中不存在....

 var userName = ($(item).val());
'<%Session["UserName"] = userName; %>';
 alert('<%=Session["UserName"] %>');

我只想在会话中添加文本框值。 有没有其他方法可以做到这一点,或者我如何更改此代码段以便按照我想要的方式解决?

1 个答案:

答案 0 :(得分:0)

Asp是服务器端。 Javascript不是。你不能。

然而,有很多技巧可以让它发挥作用。

我不确定你是想从javascript转到会话还是反过来,因为Igor在评论中注意到了我。要解释你们两个:

ASP到Javascript:

Response.Write("<p id="&chr(34)&"user"&chr(34)&" style="&chr(34)&"visibility:hidden;value: "&chr(34)&Session(Username)&chr(34)&";"&chr(34)&">)

这将写为html这个ASP代码作为隐藏字段。然后,从javascript,您可以通过以下方式获取它的值:

var userName = document.getElementById("user").value;

Javascript to ASP:

当ASP在服务器端运行时,我决​​定重新加载在其位置发送javascript参数的相同(或不同的)网页,如下所示:

javascript代码更改位置添加参数:

 location.replace("randomPage.asp?userName=" + userName);

用于读取这些参数的asp代码:

<%
Session("username") = request.querystring("userName")
%>

希望每个人都清楚。它可能是其他方式,我不知道,这是我能找到的最好的。