2009-03-02 183 views
1

我是JavaScript的新手。我希望能够做的是从位于ASP.NET MVC项目的脚本文件夹中的.js文件中调用一个函数。从ASP.NET MVC调用外部.js

功能是:

function myfunction() { 
    alert("HELLO"); 
} 

......它驻留在文件brfix.js

在一个的ViewPage我这样称呼它:

<script src="../../Scripts/brfix.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     myfuntion(); 
    }); 
</script> 

但没有按代码没有工作。不过,如果我直接将JS代码到的ViewPage,它的工作原理,这样的:

<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("HELLO"); 
    }); 
</script> 

如何调用基于文件的js函数?一些JavaScript-Big-Kahuna能帮助我吗? =)

回答

0

这可能是参照外部文件是错误的:

<script src="../../Scripts/brfix.js" type="text/javascript"></script> 

确保引用是正确的。 您可以尝试使用视图源来查看实际位置../../Scripts/brfix.js被翻译成最终页面。
你也可以试试FireBug的FireFox。

0

如果您的mvc站点是iis中的根站点,您可以使用斜杠启动脚本src以获取脚本。否则你可以使用asp:ScriptManager来包含脚本

1

如果该代码是直接从你的源代码中粘贴的,那么你有一个错字,这就是为什么它不起作用!

你的函数被调用MyFunction的(),但你打电话myfuntion()

开发时,你应该启用浏览器的JS错误。你不会说你正在使用哪个浏览器。对于IE,它在工具 - 选项 - 高级。取消选中“禁用脚本调试”选项。在firefox中,我会使用类似FireBug的东西,就像Dror所说的那样,如果内存服务,那么在发生javascript错误时会出现一些东西。如果您仍然遇到问题,我会尝试安装Fiddler2(在IE中)并为js文件构建请求并查看返回的内容。

另一种选择是放置一个调试器;在你调用你的函数之前调用,你应该能够通过JavaScript。

0

正如其他海报提到的,有一个错字。然而...

查看Url.Content()方法来引用您的网站内容。 (图片,脚本等)使用../ ..是不可靠的,特别是如果您的URL具有不同级别的深度,或者您的应用程序位于子目录中。

这里有一个帮手我在我的大多数项目的使用,例如:

public static string Script(this HtmlHelper Html, string url) 
{ 
    UrlHelper Url = new UrlHelper(new RequestContext(Html.ViewContext.HttpContext, Html.ViewContext.RouteData)); 
    string html = "<script type=\"text/javascript\" src=\"{0}\"></script>"; 
    return string.Format(html, Url.Content(url)); 
} 

在这里,它被称为:

<%= Html.Script("~/public/js/blah.js") %> 
0

我有同样的问题,事实证明,我有几个js文件没有找到。如果你的MVC项目结构是默认VS设置和您的视图页主页例如,那么我认为下面会发现文件:

<script src="../Scripts/brfix.js" type="text/javascript"></script> 

但即使找到一个其他的js文件不被发现而引起我的$(文档)。已不能工作。在Firefox的Firebug中检查您的页面,如果没有找到文件,您将看到html标记,并显示一条消息,指出无法找到资源,位于违规引用下方。一旦我解决了所有的js引用,然后我的$(document).ready工作。

奇怪的VS告诉我,当引用正确时找不到js文件,并且在引用不正确时没有标记问题。