2014-10-24 3 views
0

на MyPage.aspx.cs У меня есть список объектовSystem.Collections.Generic.List от CS до Js переменной

 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> 

но правопреемник типа как строка =>

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

, как я могу назначить свою коллекцию объектов из CS в переменную JS?

ответ

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 является публичной или защищенное свойство в вашем базовом классе

2

Вам необходимо поместить список в формат javascript. В чистом JavaScript вы ищете следующий вывод (в качестве примера):

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

Чтобы получить это от .NET вы должны использовать функцию Join объединить элементы списка в соответствующий формат. Полная строка кода выглядит следующим образом:

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

Обратите внимание, что это предполагает, что ваш «ToString» на ваших элементов формирует выходной сигнал, который вы ищете, и не включает в себя одиночные кавычки. Надеюсь, это поможет!

+0

Сообщение об ошибке компилятора: CS1501: перегрузка для встречных hod 'Join' принимает 1 аргумент – Alex

+0

@Alex Извините - еще не открыли компилятор. Попробуйте обновленный код. –

+0

@drew_w Я предполагаю, что это должно быть var jsList = ['val1', 'val2', 'val3']; – DatRid

Смежные вопросы