使用外部JavaScript文件与asp.net MVC

时间:2010-06-08 21:17:55

标签: javascript asp.net-mvc

我有一些javascript,我正在使用这样的帮助

var url = <%=ResolveUrl("~/controller/action") %> 

使用

在.aspx页面中嵌入javascript时

<script>标记一切正常

当我将其移出到外部文件时,那些具有帮助程序方法的脚本不起作用。

其他脚本只使用

var url = <%=ResolveUrl("~/controller/action") %>

不要。

这些不可能在外部javascript文件中使用吗?

如果可以的话,我想从aspx文件中获取所有的javascript。

谢谢!

1 个答案:

答案 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;
});