从CS到Js变量的System.Collections.Generic.List

时间:2014-10-24 12:29:28

标签: javascript c# asp.net

MyPage.aspx.cs上的

我有对象列表

     protected List<MyObj> myObjList =null;
     protected void Page_Load(object sender, EventArgs e)
        {
    myObjList = GetObjByUserId("23423");
    }
在aspx页面上的

我想把这个对象列表分配给JS变量

<script type="text/javascript">
    $(document).ready(function () {
var BookingsList = <%=myObjList %>;

</script>

但是分配类型如string =&gt;

System.Collections.Generic.List`1[myObj]

如何将我的对象集合从CS分配给JS变量?

2 个答案:

答案 0 :(得分:2)

您需要将列表放在javascript格式中。在纯JavaScript中,您正在寻找以下输出(作为示例):

var jsList = ['val1', 'val2', 'val3'];

要从.NET获取此信息,您需要使用Join函数将列表项组合成适当的格式。完整的代码行如下所示:

var jsList = <%= "['" + string.Join("', '", myObjList.ToArray()) + "']" %>;

请注意,这假设您的&#34; ToString&#34;在您的元素上生成您正在寻找的输出,不包括单引号。希望有所帮助!

答案 1 :(得分:1)

尝试使用JavaScriptSerializer,如下所示:

c#代码

Student student = new Student();
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string StudentJson = oSerializer.Serialize(resources);

并在你的aspx代码中得到它:

<script type="text/javascript">
    var jsonStudent = <%=StudentJson%>;            
</script>

请确保StudentJson是您后端课程中的公共或受保护财产