JavaScript - 如何在Javascript中将值设置为Session

时间:2014-01-22 11:21:02

标签: c# javascript

我想在Session中设置Dropdown选中的值。我在Code中完成了。但是对于某些条件,我必须在客户端自己做。我尝试了以下内容。但我还没解决。

<%Session["Test"] = "Welcome Mamu";%>  
var session_value='<%=Session["Test"]%>';  
alert(session_value);

以上工作很好。请注意,我已分配静态值(欢迎Mamu)。但是对于Dynamatic来说,

var strTest=document.getElementById('DropDownList1').value;  
<%Session["Test"] = "'+ strTest +'";%>

在客户端工作正常。但是我的服务器端(Code Behind),Session [“Test”]值是'+ strTest +'。

是否有其他方法可以为Session分配值?

4 个答案:

答案 0 :(得分:5)

你无法做你想做的事情并且混合那些2.: - )

第一个是服务器代码,第二个是客户端代码。

服务器代码先于客户端代码运行

你能做什么?

创建隐藏的输入元素:

<input  type='hidden' id='h' name='h'/>

var h=document.getElementById('h') ;
h.value=document.getElementById('DropDownList1').value;

当你发布页面时:

你得到的价值是:

Session["Test"]=Request.Form["h"]+"";

答案 1 :(得分:2)

嗯,你所要求的并没有多大意义。会话存储在服务器上。您的JavaScript无法直接与其进行交互。

ASP.Net呈现页面时运行服务器代码块:

<% Some code %>

所以这会奏效:

<% Session["Test"] = "Welcome Mamu"; %>

因为您将值设置为固定字符串...这与在后面的代码中编写Session["Test"] = "Welcome Mamu";相同。

您需要做的是将您的价值保存在隐藏字段或类似内容中,然后检索并更新代码中的会话。

<asp:hiddenfield id="ValueHiddenField" runat="Server" />

var strTest=document.getElementById('DropDownList1').value;
document.getElementById('<% ValueHiddenField.ClientId %>').value = strTest;

然后您可以更新代码中的值,如:

Session["Test"] = ValueHiddenField.Value;

答案 2 :(得分:1)

无法直接通过javascript分配会话值。

我找到了替代方法。调用函数后面的代码并分配会话值。

Javascript功能:

 function InitializeRequest(path) 
{
            // call server side method
            PageMethods.SetDownloadPath(path);
}


[System.Web.Services.WebMethod]
public static string SetDownloadPath(string strpath)
{
    Page objp = new Page();
    objp.Session["strDwnPath"] = strpath; 
    return strpath;
}

必须启用页面方法设置为true

<asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager>

答案 3 :(得分:-1)

$item_array_id =$_SESSION["cart"];