我有一个页面,我想加载到div。
我在Trial.js找到了:
$('#mydiv').load('../Views/Employer/Tracking.aspx');
但是没有加载div。
我的问题是什么?
感谢。
答案 0 :(得分:2)
文件的路径将相对于您所在页面的当前路径,而不是相对于javascript文件。确保您的相对路径位于此处,或使用绝对路径。
由于这是MVC,您当前的“页面”可能是也可能不是页面,但从浏览器的角度来看,无论您使用什么“目录”,它都将用于确定路径。
例如,如果您当前的页面是:
http://example.com/Marketing/Home/Index
然后../Views/Employer/Tracking.aspx
会认为您的目录是“主页”,并且会尝试获取http://example.com/Marketing/Views/Employer/Tracking.aspx
,并且它应该有效(编辑:这也无效,因为“区域”缺失)。但是,如果您当前的页面是
http://example.com/Marketing/Home/Index/34
然后它会认为“Index”是你的目录,相对路径将返回http://example.com/Marketing/Home/Index/Views/Employer/Tracking.aspx
,这将不存在。
一个全局工作的解决方案是将服务器端标记上的URL定义为javascript变量,然后在js文件中使用该变量。例如,在您的布局/母版页中,将指定全局变量的相对路径,并且它将始终正确构建此URL。
<script type="text/javascript">
var _trackingUrl = "<%= Url.Content("~/Areas/Marketing/Views/Employer/Tracker.aspx") %>";
</script>