C# javascript中使用内联服务器标记的集合迭代

C# javascript中使用内联服务器标记的集合迭代,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个asp.net用户控件,它公开了一个公共IEnumerable对象。如果有助于回答问题,可以将其转换为列表或数组。我想做的是循环遍历javascript函数中的所有服务器对象,并处理每个项的内容。如果可能的话,我想使用内联服务器标签来实现这一点。类似下面的例子 function iterateServerCollection() { foreach(<%=PublicCollection %>) { var somevalue = <%=

我有一个asp.net用户控件,它公开了一个公共IEnumerable对象。如果有助于回答问题,可以将其转换为列表或数组。我想做的是循环遍历javascript函数中的所有服务器对象,并处理每个项的内容。如果可能的话,我想使用内联服务器标签来实现这一点。类似下面的例子

function iterateServerCollection()
{
    foreach(<%=PublicCollection %>)
    {
        var somevalue = <%=PublicCollection.Current.SomeValue %>;
    }
}
函数iterateServerCollection()
{
foreach()
{
var somevalue=;
}
}

有可能做到这一点吗?

我会按照其他人的建议对对象进行序列化,您甚至可以使用ajax调用从该函数的一开始获取数据

function iterateServerCollection()
{

    //Ajax call to get data from server HttpHandler/WebAPI/Service etc.

    for(var item in resultObject) {
        //you can use item.WhateverPropertyIsOnObject
    }
}

由于geedubb的评论,我成功地实现了我想要的。下面是工作javascript的外观

var myCollection = <%= new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(myCollection) %>;

for(var i in myCollection)
{
    var somevalue = myCollection[i].SomeValue;
}
var myCollection=;
for(myCollection中的var i)
{
var somevalue=myCollection[i].somevalue;
}

一种方法是将.NET集合序列化到客户端javascript数组(查看System.Web.Script.Serialization中的JavaScriptSerializer类),然后在客户端的javascript中循环该类。您还需要在javascript中使用for循环。客户端javascript不可能在服务器端asp.net对象上迭代。您想做什么?使用JavaScriptSerializer实现了我想要的。谢谢你,吉杜布