如何从代码隐藏中分配 $(document).ready 中的值

How to assign value in $(document).ready from code behind

本文关键字:document ready 分配 代码 隐藏      更新时间:2023-09-26

我正在使用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"}, {...}];

编辑

JavaScriptSerializerSystem.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?