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

标签 javascript jquery asp.net-mvc

我正在尝试制作并获取网站的测验。目前您可以输入测验、问题和答案。现在我正在尝试编写参加的测验(任何有关如何执行此操作的建议都会有所帮助!)。我正在关注型号here和我生成的输出文件 looks like this 。现在,当我将代码复制到其自己的文件并运行它时,它可以正确运行。它确保所有问题都得到解答,并且对于多个问题,它会告诉您哪一个是正确的。

但是,当我从网站本身加载 html 原始生成的 javascript 时,它只检查您是否回答了其中一个问题,而不是另一个问题,并且当您单击“完成”时,它只显示一个答案的结果。如果您回答两个问题都错误,则只会显示 1 个答案错误,而不是 2 个(对于我的示例)。

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

我只是不确定为什么我会遇到 @Html.Raw 生成的 javascript 问题。如果还有其他方法来编写测验者,我也会洗耳恭听。

谢谢。

编辑:

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

takequiz cshtml

takequiz controller

最佳答案

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

我的猜测是,这部分是导致所有问题的原因,也许您遗漏了一些东西,因为很难看出可能出了什么问题。

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

如果您仍然无法让它工作,请向我们展示您清理后的代码,以及您正在工作的单独代码文件,也许我或其他人可以仔细查看。

编辑:我尝试使用 Notepad++ 将注释中的 Pastebin 中的代码和标记粘贴到一个简单的 html 文件中。保存并检查是否有任何错误。我确实收到错误: $ is not defined这通常意味着库没有及时加载,或者根本没有加载。因此,在我看来,问题在于您将 jQuery 库的引用放在了测验脚本之后。

在测验脚本之前,有以下行:

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

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

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

我所做的是在两者之间交换位置,以便将 1.7.1.js 引用放在测验脚本之前,然后我完全删除另一个。这样脚本就可以工作了。 我还将代码放入 MVC View 中。虽然我确实没有时间设置所有 Controller 内容和最初的 foreach,但如果上面写的内容没有帮助,我接下来要检查 Controller 和 View 之间的连接。

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

关于javascript - @Html.Raw 生成的 javascript 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048039/

相关文章:

javascript - 使用 jquery 的顶部和底部分屏,将下半部分限制在页面上

asp.net-mvc - Entity Framework "Migrations Configuration"和 autofac

asp.net-mvc - 项目的默认 XML 命名空间必须是 MSBuild XML 命名空间

javascript - 我如何禁用输入字段的自动填充功能

jquery - 在 jQuery 中,如何通过单击正文中的任意位置来淡出重叠的 div?

javascript - Underscore.js 模板 IE9/IE10 未返回正确的代码

javascript - 415(不支持的媒体类型)与 REST 发布请求

asp.net-mvc - 将 MVC 身份验证与 SignalR v2.x 结合使用

javascript - 在Vue.js中的双大括号{{}}中渲染元素

javascript - 从我的 Java Web 服务以 REST 响应 (xml) 发送图像