我有一个 WebForms 应用程序,在其中存储 Session 对象中的字符串数组,我需要 在 javascript 代码中获取这个数组。也许有人可以提供任何解决方案,我该怎么做?
这是我的代码:
function loadAnswers() {
var answers = '<%=Session("answers")%>';
}
但它不起作用,answers 变量在赋值后包含简单的字符串。 ('System.String[]')
最佳答案
如果您将 answers
对象序列化为 JSON,那么您应该能够从 JavaScript 以编程方式访问它。
var answers = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Session("answers")) %>;
<小时/>
更新:下面是一个使用四种不同类型的数据(字符串、数字、集合、对象)的工作示例。这说明了如何将从服务器序列化的 JSON 用作客户端的 JavaScript 对象文字。
代码隐藏:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebFormsTestApp
{
public partial class _Default : Page
{
protected string Name = "Alice Student";
protected decimal GPA = 3.84M;
protected List<string> Classes = new List<string>() { "World History", "Algebra II", "English", "Phys Ed", "Latin I", "Home Economics" };
protected School School = new School() { Name = "Jefferson High School", County = "Hamilton County", Ranking = 5 };
}
public class School
{
public string Name { get; set; }
public string County { get; set; }
public int Ranking { get; set; }
}
}
ASPX:
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormsTestApp._Default" %>
<script type="text/javascript">
var name = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Name) %>;
var gpa = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(GPA) %>;
var classes = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Classes) %>;
var school = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(School) %>;
alert(name + ' goes to ' + school.Name + ', has a ' + gpa + ' GPA, and takes ' + classes.length + ' classes.');
</script>
关于javascript - ASP NET 从 javascript 读取 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656914/