【问题标题】:How to Access ViewData in javascript如何在 JavaScript 中访问 ViewData
【发布时间】:2011-01-23 09:36:54
【问题描述】:

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

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

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

在此之后我没有收到警报消息,并且在此语句之后我的任何脚本都不会运行。我假设这个脚本是无效的,因此之后会杀死一切。我已经尝试了同一个脚本的几个不同变体,但没有任何运气。

我在这里错过了什么?

提前致谢, 比利

【问题讨论】:

    标签: c# model-view-controller


    【解决方案1】:

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

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

    编辑:

    我注意到您使用 NAME 作为密钥;这个名字可以有一个单引号吗?如果任何值都可能包含一个,那么您将需要这样的东西,这样您的页面就不会再次中断(尽管从技术上讲,这似乎更像是控制器或模型的工作):

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

    【讨论】:

    • 你明白了。想知道为什么我看到的例子没有那些引号。谢谢。
    • 我认为您看到的示例假定您直接在视图文件中编写脚本(即在&lt;script&gt; 标签内),这就是为什么它可以在没有周围引号的情况下工作。
    【解决方案2】:

    试试

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

    (注意&lt;%= %&gt; 周围的引号)

    【讨论】:

    • 感谢您的回复,约翰勉强击败了您。不过也给了你一个分数。
    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多