在代码后台,我使用Session
存储了一些数据。
Session["usedData"] = "sample data";
我该如何在JavaScript中获取Session值(例如:"sample data"),并将Session["usedData"]
设置为新值?
在代码后台,我使用Session
存储了一些数据。
Session["usedData"] = "sample data";
我该如何在JavaScript中获取Session值(例如:"sample data"),并将Session["usedData"]
设置为新值?
使用Javascript访问和赋值Session变量:
使用Javascript分配ASP.NET Session变量:
<script type="text/javascript">
function SetUserName()
{
var userName = "Shekhar Shete";
'<%Session["UserName"] = "' + userName + '"; %>';
alert('<%=Session["UserName"] %>');
}
</script>
使用Javascript访问ASP.NET Session变量:
<script type="text/javascript">
function GetUserName()
{
var username = '<%= Session["UserName"] %>';
alert(username );
}
</script>
+ userName +
。 - Rajshekar Reddy在 JavaScript 中不能直接访问 Session
。
您可以创建一个隐藏字段,并将其传递给您的页面,然后使用 JavaScript 通过 document.getElementById
检索对象。
试试这个:
var sessionValue = '<%=Session["userData"]%>';
file.js
文件中的一个函数$button.click
中这样做,我得到的只是赋值的纯字符串。自2013年以来,JavaScript有没有发生一些变化? - bombenJavascript无法直接设置会话值。
为了从Javascript设置会话值,我使用以下ajax调用。
在ASPx文件或HTML中,
<script type="text/javascript">
$(function(){
//Getting values from session and saving in javascript variable.
// But this will be executed only at document.ready.
var firstName = '<%= Session["FirstName"] ?? "" %>';
var lastName = '<%= Session["LastName"] ?? "" %>';
$("#FirstName").val(firstName);
$("#LastName").val(lastName);
$('Button').click(function(){
//Posting values to save in session
$.post(document.URL+'?mode=ajax',
{'FirstName':$("#FirstName").val(),
'LastName':$("#LastName").val()
} );
});
});
在服务器端,
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["mode"] != null && Request.QueryString["mode"] == "ajax")
{
//Saving the variables in session. Variables are posted by ajax.
Session["FirstName"] = Request.Form["FirstName"] ?? "";
Session["LastName"] = Request.Form["LastName"] ?? "";
}
}
如Shekhar和Rajeev所说,要获取会话值。
var firstName = '<%= Session["FirstName"] ?? "" %>';
希望这可以帮到你。
首先在后台代码中创建一个方法来设置会话:
[System.Web.Services.WebMethod]
public static void SetSession(int id)
{
Page objp = new Page();
objp.Session["IdBalanceSheet"] = id;
}
然后从客户端调用它:
function ChangeSession(values) {
PageMethods.SetSession(values);
}
您应该将EnablePageMethods设置为true:
<asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager>
您无法通过Javascript
设置会话端的会话变量。如果您想要这样做,您需要创建一个AJAX
POST来在服务器上更新它,尽管如果选择一辆汽车是一个重大事件,这可能更容易地完成 POST 。
<script type='text/javascript'>
var userID='@Session["userID"]';
</script>
请注意,保留了HTML标签。以下是对我有用的解决方案。 Javascript有这个功能。
<script type="text/javascript">
var deptname = '';
</script>
String csname1 = "LoadScript";
Type cstype = p.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = p.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = funct;
cs.RegisterStartupScript(cstype, csname1, "deptname = 'accounting'", true);
}
else
{
String cstext = funct;
cs.RegisterClientScriptBlock(cstype, csname1, "deptname ='accounting'",true);
}
在按钮点击事件中添加此代码以确认 deptname 已更改。
alert(deptname);