如何在javascript中访问ViewData

Bil*_*gan 4 c# model-view-controller

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

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

     var test = <%= ViewData["NAME"].ToString() %>;
     alert(test);
Run Code Online (Sandbox Code Playgroud)

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

我在这里失踪了什么?

先谢谢,比利

Joh*_*sch 14

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

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);
Run Code Online (Sandbox Code Playgroud)

编辑:

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

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


Mar*_*arz 5

尝试

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);
Run Code Online (Sandbox Code Playgroud)

(注意周围的报价<%= %>)