将变量与ViewData一起使用而不是文字字符串

时间:2014-01-24 19:33:20

标签: javascript asp.net

是否可以使用变量代替ViewData的字符串文字?我拥有的是......

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

我想做的就是这样......

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

我之所以喜欢这样做是因为我可以在我的javascript中使用泛型函数来加载我使用我指定的数据源指定的列表(两者都通过参数)。然后我可以有一个像这样的通用LoadList函数......

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

2 个答案:

答案 0 :(得分:0)

是的,据我所知,应该有效。你有没有试过它而没有得到你想要的结果?

答案 1 :(得分: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 );