我有一些javascript,我正在使用这样的帮助
var url = <%=ResolveUrl("~/controller/action") %>
使用
在.aspx页面中嵌入javascript时 <script>
标记一切正常
当我将其移出到外部文件时,那些具有帮助程序方法的脚本不起作用。
其他脚本只使用
var url = <%=ResolveUrl("~/controller/action") %>
不要。
这些不可能在外部javascript文件中使用吗?
如果可以的话,我想从aspx文件中获取所有的javascript。
谢谢!
答案 0 :(得分:3)
ResolveUrl是Control类的辅助方法,这就是为什么你能够从ViewPages调用它们(以.aspx结尾)
您无法通过javascript调用这些文件,因为这些文件被视为没有编译的简单资源。
但是,您可以在主页面或视图页面中为所需路径设置变量,并从js文件中引用它们。更好的解决方案是在文档中保留您需要的URL,例如在&lt; a&gt;中。标签并使用javascript在执行操作时将其删除:
例如,这个jquery代码从&lt; a&gt;中获取url。使用来自ajax调用的html内容标记并替换标记。
$('a#clickme').click(function() {
var $this = $(this);
$.ajax({
type: 'GET',
url: $this.attr('href'),
success: function(data) {
$this.replaceWith(data);
},
failure: function(data) {
alert('Handle this error gracefully');
}
});
return false;
});