ASP.NET生成Javascript对象
我需要从服务器生成一个JSON对象,其中包含要缓存在客户机上的数据。我提出以下建议:ASP.NET生成Javascript对象,javascript,asp.net-mvc-3,Javascript,Asp.net Mvc 3,我需要从服务器生成一个JSON对象,其中包含要缓存在客户机上的数据。我提出以下建议: <script src='Path to js file on server" /> 然而,当我试图访问jsonData对象时,它会说,未定义 有没有其他方法可以从服务器端生成有效的javascript 谢谢 这是服务器端代码: var items = List<myObj>(); string json = JsonConvert.SerializeObject(items, F
<script src='Path to js file on server" />
然而,当我试图访问jsonData
对象时,它会说,未定义
有没有其他方法可以从服务器端生成有效的javascript
谢谢
这是服务器端代码:
var items = List<myObj>();
string json = JsonConvert.SerializeObject(items, Formatting.Indented);
StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.AppendFormat(" var jsonData = {0};", json);
var fileName = Request.PhysicalApplicationPath + "Scripts/Data.js";
System.IO.File.WriteAllText(fileName, sb.ToString());
它说,jsonData是未定义的
就ASP部分而言,问题似乎在于javascript变量范围平面。可能的问题:
- 你只是不包括那个js文件
- 您试图在初始化变量之前访问它李>
- 变量在适当位置不可见,您正在尝试访问它
- 您的问题不准确,访问的不是
,而是类似jsonData
jsonData[0]。属性
UPD:好的,前两个选项不包括在内。您试图在何处访问此变量?请向我们展示部分代码。发布一个示例json数据和尝试使用它的代码。您是否尝试发回json或Javascript代码?这是两种不同的构建方式。@ianaldo21 json是javascript对象表示法。@jrummell json是真正不同的东西。在当前情况下,这无关紧要,因为JSON是有效的javascript对象文本。但并非相反。@jrummell是的,这是javascript对象表示法。我没有说它们是两个不同的东西,它们是不同的构造(组合)在一起的。
var items = List<myObj>();
string json = JsonConvert.SerializeObject(items, Formatting.Indented);
StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.AppendFormat(" var jsonData = {0};", json);
var fileName = Request.PhysicalApplicationPath + "Scripts/Data.js";
System.IO.File.WriteAllText(fileName, sb.ToString());
alert(jsonData[0].Id);