我在通过javascript访问ViewData对象时遇到问题。
我已经在控制器和视图的document.ready事件上设置了ViewData对象,我试图查看同一个ViewData对象的内容,如下所示:
var test = <%= ViewData["NAME"].ToString() %>;
alert(test);
此后我没有收到警告消息,并且在此语句之后我的脚本都不会运行。我假设这个脚本无效,从而杀死了一切。我尝试过这个相同脚本的几个不同版本而没有任何运气。
我在这里缺少什么?
提前致谢, 比利
答案 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);
(注意<%= %>
周围的引号)