如何从代码后面的$(document).ready中赋值

时间:2014-12-24 06:38:36

标签: javascript c# jquery asp.net twitter-bootstrap

我正在使用twitter bootstrap开发一个.net应用程序。

我试图从.aspx.cs页面获取数据到.aspx页面。

请在下面找到我的代码:

strOblect.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>

无法在$(文档).ready 中获取stringList值。

请帮助我获得价值。

2 个答案:

答案 0 :(得分:4)

您的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)%>;

答案 1 :(得分:1)

StuartLC的答案就足够了.JSON是非常好的选择。其他选项可以在aspx.cs中注册客户端脚本。这是关于那个的另一个问题

How do I pass data from c# to jquery/javascript?