如何在.NET应用程序中引用jQuery中的绝对路径

问题描述:

我有一些jQuery将一些图像标签写入浏览器,但我想引用它们使得我不必硬编码路径,而我无法使用相对路径。这是一个.NET应用程序,我试图使用服务器端标签。如何在.NET应用程序中引用jQuery中的绝对路径

于是,我改变了以下内容:

$('#IMG_' + myID).attr('src','../images/plus.gif'); 

到:

$('#IMG_' + myID).attr('src','<%= Url.Content("~/images/plus.gif") %>'); 

或:

$('#IMG_' + myID).attr('src','<%= ResolveUrl("~/images/plus.gif") %>'); 

当它运行时我得到48行的JavaScript错误,无效的说法, char3.5的jquery-1.4.2.min.js。

+1

做一个查看源代码和发布的信息是越来越提供给客户端。另外,你安装了萤火虫还是你使用IE 8的开发者工具?他们使诊断这些事情变得更容易。 – Rob 2010-07-06 00:45:13

+0

也有助于在dev \ debug模式下不使用缩小版本的脚本。你从非分钟js得到更好的错误信息。 – redsquare 2010-07-06 00:47:43

+2

愚蠢的问题,但只是检查:此代码是在aspx页面上,而不是.js文件,对吧? – 2010-07-06 00:57:25

这件事情我已经在做几个项目。它旨在与ASP.NET MVC一起使用,但我想它也可以用于WebForms。

脚本:common.js

function Environment() { }  
Environment.vroot = ''; 

Environment.getUrl = function(path) { 
    return Environment.vroot + path; 
}; 

局部视图/用户控件:CommonScript.ascx

<script type="text/javascript"> 
    Environment.vroot = '<%= Url.Content("~/") %>'; 
</script> 

我只是把我的CommonScript.ascx母版页上,但你可以把它放在任何你想要的地方。它需要脚本引用common.js虽然。

如果你使用这个,你可以做到这一点来设置你的形象网址:

$('#IMG_' + myID).attr('src', Environment.getUrl('images/plus.gif')); 
+0

这对我有用。这与我在ASP.NET端使用的模式相同。我想我现在会用这个。谢谢! – Sephrial 2010-07-14 21:37:59

如果你不使用任何环境中的虚拟目录,你可以只使用/images/plus.gif

如果您的网站有这样一个localhost/mysite/default.aspx网址将无法正常工作

+0

我试过只是/images/plus.gif,但没有奏效。什么工作是/PROJNAME.Web/images/plus.gif。有没有什么时候/PROJNAME.Web/会导致问题? – Sephrial 2010-07-07 20:57:36