我有对象列表
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变量?
答案 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是您后端课程中的公共或受保护财产