如何从代码隐藏中分配 $(document).ready 中的值
本文关键字:document ready 分配 代码 隐藏 | 更新日期: 2023-09-27 18:35:06
我正在使用Twitter引导程序开发一个.NET应用程序。
我正在尝试将数据从.aspx.cs页面获取到.aspx页面。
请在下面找到我的代码:
斯特奥布莱特.cs
public class strObject
{
public string Name { get; set; }
public string Description { get; set; }
}
.aspx.cs页:
public List<strObject> stringList = new List<strObject>();
protected void Page_Load(object sender, EventArgs e)
{
strObject ObjOne=new strObject();
ObjOne.Name="One";
ObjOne.Description ="One";
stringList.Add(ObjOne);
strObject ObjTwo=new strObject();
ObjTwo.Name="Two";
ObjTwo.Description ="Two";
stringList.Add(ObjTwo);
strObject ObjThree=new strObject();
ObjThree.Name="Three";
ObjThree.Description ="Three";
stringList.Add(ObjThree);
}
。.aspx:
<asp:Panel ID="pnlData" runat="server" style="background-color:White;">
<script type="text/javascript">
$(document).ready(function () {
var valueAssigned=stringList;
});
</script>
</asp:Panel>
我无法在 $(document).ready 中获取 stringList 值。
请帮助我获得价值。
看起来您的stringList
实际上是对象的集合。为了在 JavaScript 中使用它,您需要将其序列化为 JavaScript 对象。
var valueAssigned=<%=new JavaScriptSerializer().Serialize(stringList)%>;
这样您就可以得到以下内容:
var valueAssigned= [{Name: "Foo", Description: "Bar"}, {...}];
编辑
JavaScriptSerializer
在System.Web.Script.Serialization
- 您需要在下面的<%@ Page
顶部添加此内容
<%@ Import Namespace="System.Web.Script.Serialization" %>
或指定 FQ 名称
var valueAssigned=<%=new System.Web.Script.Serialization.JavaScriptSerializer()
.Serialize(stringList)%>;
StuartLC的回答就足够了。JSON是用于此目的的非常好的选择。其他选项可以是在 aspx.cs 中注册客户端脚本。这是另一个关于这个问题的SO问题
如何将数据从 c# 传递到 jquery/javascript?