以前也发生过这种问题,自己忽视了,今天在做DEMO的时候,调试了好久才想起来了,现在亡羊补牢下下...
这个Demo是这样的在网站下有2个目录一个是Controls 下面有用户控件Login.ascx
一个是Handlers目录下面有文件CheckImg.ashx,代码如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Login.ascx.cs" Inherits="Controls_Login" %>
<div>
<%--
注意这里在src下虽然有波浪红线 示意在Controls文件夹下是没有该文件的(这里提示是正确的)
但是在如果你根目录下新建一个aspx,调用该用户控件却是能找到的CheckImg.ashx
--%>
<a><img alt="看不清点我" src="handlers/CheckImg.ashx" onclick="this.src=this.src+'?'" /></a>
</div>
<div>
<%--
注意这里在src下虽然有波浪红线 示意在Controls文件夹下是没有该文件的(这里提示是正确的)
但是在如果你根目录下新建一个aspx,调用该用户控件却是能找到的CheckImg.ashx
--%>
<a><img alt="看不清点我" src="handlers/CheckImg.ashx" onclick="this.src=this.src+'?'" /></a>
</div>
有朋友可能会说为什么不用src="../handlers/CheckImg.ashx" 或者"/handlers/CheckImg.ashx"的确这样一来 波浪线没了 但是在其他文件调用该控件的时候就会找不到 右键属性显示的路径会是http://localhost:5653/handlers/CheckImg.ashx 而不是http://localhost:5653/WebDemo/handlers/CheckImg.ashx
不知道这算不算是微软的BUG...