在索引视图中找到Javascript函数,但在其他视图中找不到
我正在使用ASP.NETMVC4开发一个web应用程序。我有一个外部javascript文件,其中包含一个initializeLocation()方法。如果我在主控制器的索引视图中引用该文件,它就可以正常工作。但是当我尝试在另一个视图中引用JS文件,并在body onLoad中调用该方法时,我得到以下错误:在索引视图中找到Javascript函数,但在其他视图中找不到,javascript,controller,asp.net-mvc-4,Javascript,Controller,Asp.net Mvc 4,我正在使用ASP.NETMVC4开发一个web应用程序。我有一个外部javascript文件,其中包含一个initializeLocation()方法。如果我在主控制器的索引视图中引用该文件,它就可以正常工作。但是当我尝试在另一个视图中引用JS文件,并在body onLoad中调用该方法时,我得到以下错误: Uncaught ReferenceError: initializeLocation is not defined 以下是我的观点代码: @{ ViewBag.Title = "
Uncaught ReferenceError: initializeLocation is not defined
以下是我的观点代码:
@{
ViewBag.Title = "Online Users";
}
<html>
<head>
<title>Online Users</title>
</head>
<body onload="initializeLocation()">
<h2>Online Users</h2>
<div id="wrapper">
<div id="upperPanel">
<div>
<ul id="onlineUsers" itemid="@HttpContext.Current.User.Identity.Name">
</ul>
</div>
<div id="friends">
</div>
</div>
<div id="bottomPanel">
<input id="submitLocation" type="submit" value="Share Location" style="margin-left: 10px;" /><br />
</div>
</div>
<label id="locLabel"></label>
<div id="map" style="width: 100%; height: 600px"></div>
<script>
var Pusher_APP_KEY = 'b5ee1a1486b7f0cec06f';
</script>
<script src="http://js.pusher.com/1.12/pusher.min.js"></script>
<script src="~/Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBsjVTOfgW39medqXn6cmOTfVyyxIX3Nl8&sensor=true"> </script>
<script type="text/javascript">
//postURL is used in locationFinder.js to set the URL of POST requests
//It is declared here to be able to use a separate java file instead of embedding it
var postURL = '@Url.Action("Index", "Home")';
</script>
<script type="text/javascript" src="~/Scripts/locationFinder.js">
</script>
</body>
</html>
我是MVC新手,仍然习惯于控制器之类的概念,但我不明白为什么完全相同的代码应该在一个视图中工作而不是在另一个视图中工作。而不是
<script src="~/Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript" src="~/Scripts/locationFinder.js"></script>
使用
问题在于页面上呈现的url。使用@Url.Content
呈现Url及其rool路径引用。它将在路由时呈现正确的url
<script src="~/Scripts/jquery-1.8.2.js" type="text/javascript"></script>
<script type="text/javascript" src="~/Scripts/locationFinder.js"></script>
<script src="@Url.Content("~/Scripts/jquery-1.8.2.js")" type="text/javascript"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/locationFinder.js")" ></script>