@ Html.Raw生成的javascript无法正常工作

时间:2014-07-30 22:30:23

标签: javascript jquery asp.net-mvc

我正在尝试制作测验和拍摄网站。目前,您可以输入测验,问题和答案。现在我试着写测验参与(任何关于如何做这个的建议都会有所帮助!)。我关注了模型here和我生成的输出文件looks like this。现在,当我将代码复制到自己的文件并运行它时,它运行正常。它确保所有问题都得到解答,它会告诉您多个问题,哪一个是正确的。

然而,当我从网站本身加载html raw生成的javascript时,它只检查你是否回答了其中一个问题,而不是另一个问题,它只显示单击完成时一个答案的结果。如果你回答两个问题都错了,那么只会将1个答案显示为错误而不是2个(对于我的例子)。

这是我的css looks like。以下是代码的html raw portion

我只是不确定为什么我会遇到由@ Html.Raw生成的javascript问题。如果还有另一种方式来编写测验者,我也会听到。

感谢。

编辑:

同样,如果我在自己的文件中复制/粘贴代码它可以工作,但是从MVC渲染它不起作用。

takequiz cshtml

takequiz controller

1 个答案:

答案 0 :(得分:1)

老实说,我无法弄清楚为什么在每个脚本行上使用@Html.Raw()。将所有这些放在<script>标记中的事实使得这完全没必要,并且它很难阅读。没有它,如果需要,您仍然可以使用Razor语法和C#变量。

我的猜测是,这部分导致了所有问题,或许你错过了一些东西,因为很难看出可能出现的问题。

在您清理Html.Raw的代码之前或之后,我建议您在页面上呈现元素后检查脚本的外观,并将其与工作代码进行比较。单独的脚本文件。

如果您仍然无法使其正常运行,请向我们展示您已清理的代码以及正在运行的单独的代码文件,也许我或其他人可以仔细查看

编辑:我尝试将评论中的代码和标记粘贴到带有Notepad ++的简单html文件中。保存并检查我是否有任何错误。我确实收到了一个错误: $ is not defined这通常意味着图书馆未及时加载,或者根本没有加载。所以,似乎对我来说,问题在于您在测验脚本之后将引用放到了jQuery库

在你的测验脚本之前,你有这一行:

<script src="jquery.js"></script>

我不确定它是否有任何效果,因为您在页面的底部中有更具体的引用:

<script src="/Scripts/jquery-1.7.1.js"></script>

我所做的是在两者之间切换位置,以便1.7.1.js引用放在测验脚本之前,然后我完全删除了另一个。所以脚本有效。 我还将代码放入MVC视图中。虽然我没有时间设置所有控制器内容和最初的foreach,但是如果我上面写的内容没有帮助,那么控制器和视图之间的连接是我接下来要检查的。

正如我在评论中所说,如果你在浏览器开发者工具中检查控制台,我确定你会发现一些有用的东西。