asp.net MVC中的Javascript。。。初学者问题

asp.net MVC中的Javascript。。。初学者问题,javascript,html,asp.net-mvc,Javascript,Html,Asp.net Mvc,我创建了一个Asp.NETMVC Internet应用程序,在主控制器的索引视图中,我有一个 This is the first line, before the script results. <script type="text/javascript" src="~/Script/Teste.js"></script> <br /> This line comes after the script. 但什么也没发生。如果我更改src属性并添加一些随机

我创建了一个Asp.NETMVC Internet应用程序,在主控制器的索引视图中,我有一个

This is the first line, before the script results.

<script type="text/javascript" src="~/Script/Teste.js"></script>
<br />

This line comes after the script.
但什么也没发生。如果我更改src属性并添加一些随机名称src=“aaaa”,尽管事实上“aaaa”不存在,但在运行时不会出现错误。

EDIT

另外,再次检查您的路径。VS中的默认MVC模板创建一个名为
Scripts
的文件夹,而不是
Script
。(“
~/Scripts/teste.js
”)

根据下面的评论,这不是问题的根本原因,但在其他情况下,可能会很容易地影响新的JavaScript开发人员

最有可能的情况是,您的document.write函数在文档准备就绪之前启动,导致看起来什么都没有发生。在Teste.js文件中尝试以下操作

window.onload = function ()
{
   document.write("Yes! I am now a JavaScript coder!");
   //or even better as a test
   alert("This alert was called");
}
同时检查页面的来源,可能是文档正在写入,但由于标记/页面样式的原因,您无法看到它


至于第二个问题,如果您引用一个不存在的文件,则不会引发“运行时异常”。如果您正在使用Firebug或Chrome的开发者工具等工具,您应该会看到
http://siteDomain/Scripts/aaaa.js
的响应为404,未找到。

通常应避免使用document.write(),除非出于某种原因必须使用它。。。我想我从来没有遇到过这样的情况,并且写了很多Javascript

试试这个:

1) 将其放入HTML中:

<script src="/scripts/teste.js"></script>
3) 打开Chrome,因为它可以轻松地查找外部资源加载,并在开发者工具中打开网络选项卡(单击右上角的菜单按钮,工具>开发者工具,网络选项卡)

4) 运行您的项目,并在浏览器中复制/粘贴URL,然后点击回车键

当页面加载时,将发生以下两种情况之一:

A) 你会得到你想要的警报框,或者


B) 您将了解为什么它没有加载,因为网络选项卡将显示浏览器试图获取teste.js,但以某种方式失败,例如404,这将表明您在路径中有输入错误,或者脚本不是您认为的地方,等等。

将以下行放在文档的最后。之后不应该有任何事情。然后尝试加载页面

<script type="text/javascript" src="~/Script/Teste.js"></script>


此外,加载页面后,尝试按F12键查看源代码。检查脚本是否存在。

在MVC中,波浪号用于引用应用程序的根URL。但是,它通常无法解析此信息。如果你写:

<script src="~/Script/Teste.js"></script>
这样做将确保向浏览器提供有效的URL


记住这一点,您需要检查文件名和文件夹名是否都正确。您还需要确保该文件与您的应用程序一起部署。当在解决方案资源管理器中选择文件并按F4键时,您可以打开属性面板来执行此操作。

您的“Teste.js”在哪里?尝试使用相对路径,或者更好的是使用@Url.Content.Try
src=“@Url.Content(“~/Script/Teste.js”)”
,以便正确解析路径。我尝试了Url.Content,但仍然不起作用。我同意您应该使用上面提到的一些开发工具来确定是否找到了脚本。@ZeCariocaSilva,你需要注意@TimMedora的评论。在MVC应用程序中引用URL时,始终使用以
~
开头的URL帮助程序。否则,如果您的网站恰好不在根目录中,它将被破坏。
document.write
可以存在于正文中并正常运行,而无需确保DOM已完全加载。您没有将DOM与
文档一起使用。编写
,您正在创建它。谢谢@Travis-我知道这是真的,但我想确保OP端没有什么奇怪的问题。这通常会影响到大多数使用JS的初学者开发人员。:)现在它起作用了。。。。问题就在路上。。。。它是“脚本”而不是“脚本”。。。。泰铢help@Travis,我用一些关于我最初提出的解决方案的“预先确认”文本更新了我的答案,以避免混淆可能偶然发现这一点的其他人。
<script type="text/javascript" src="~/Script/Teste.js"></script>
<script src="~/Script/Teste.js"></script>
<script src="@Url.Content(~/Script/Teste.js)"></script>