如何在javascript中访问ViewData

时间:2010-03-03 20:31:37

标签: c# model-view-controller

我在通过javascript访问ViewData对象时遇到问题。

我已经在控制器和视图的document.ready事件上设置了ViewData对象,我试图查看同一个ViewData对象的内容,如下所示:

     var test = <%= ViewData["NAME"].ToString() %>;
     alert(test);

此后我没有收到警告消息,并且在此语句之后我的脚本都不会运行。我假设这个脚本无效,从而杀死了一切。我尝试过这个相同脚本的几个不同版本而没有任何运气。

我在这里缺少什么?

提前致谢, 比利

2 个答案:

答案 0 :(得分:14)

尝试在输出周围添加一些引号:

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

编辑:

我注意到你正在使用NAME作为密钥;这个名字有没有单引号呢?如果任何值都可能包含一个,那么你会想要这样的东西,这样你的页面就不会再次破坏了(虽然从技术上来说这似乎更像是控制器或模型的工作):

var test = '<%= ViewData["NAME"].ToString().Replace("'", "\\'") %>';
alert(test);

答案 1 :(得分:5)

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

(注意<%= %>周围的引号)