2014-01-24 3 views
0

Возможно ли использовать переменную вместо строкового литерала для ViewData? То, что я это ...Использовать переменную с ViewData Вместо литеральной строки

var listsource = <% = ViewData["dtYears"] %>; 

И то, что я хотел бы сделать что-то вроде этого ...

var datasource = "dtYears"; 
var listsource = <% = ViewData[datasource] %>; 

Поэтому я хотел бы сделать это так, чтобы я мог общая функция в моем javascript, которая загружает список, который я указываю, с указанным источником данных (оба с помощью параметра). Тогда у меня может быть общая функция LoadList, например ...

function LoadList(datasource, target) { 
// generic list population code goes here 
} 
+1

является 'datasource' переменной JavaScript? – Satpal

+0

Правильный источник данных - это просто переменная javascript. Я в основном хочу присвоить значение этой переменной этой переменной, а затем использовать переменную с ViewData, все на стороне клиента. –

+0

Тогда вы не сможете этого сделать, поскольку JavaScript работает на стороне клиента, а 'ViewData' контролируется движком ASP.Net. если 'datasource' является переменной ASP.Net, вы сможете это достичь. Вы должны искать некоторые альтернативные стратегии. – Satpal

ответ

0

Вы можете попробовать этот подход:

//On your server code(controller) where you set the ViewData 
// Convert the datasource List/object to a json string and add the string to ViewData 

ViewData["dtYears"] = JsonConvert.SerializeObject(lstYears); 


//On your Client html code (view) 
//convert it to equavalent json object/objects, using one of the following two methods 

var datasource = eval("(" + '<%=ViewData["dtYears"].ToString() %>' + ")"); 

//OR use jquery method 

var datasource =jQuery.parseJSON('<%=ViewData["dtYears"].ToString() %>'); 

//you should be good to go 
alert(datasource.length+ " objects in "+ datasource); 
0

Да, насколько я знаю, это должно сработать. Вы пробовали это и не получили результатов, которые хотели бы?

+0

В приведенном выше примере, когда я переключаюсь на переменную с именем datasource вместо строки, она не определена. –

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