Thursday, March 22, 2012

Strange issue with ImageButton with no ImageUrl

I realize that there is no good reason for an image button to not have an
ImageUrl but I have just hit upon a strange problem when converting an
ASP.NET 1.1 web application to 2.0. An asp:ImageButton control without an
ImageUrl contained within a WebForm causes a redirect to the default
document in IIS. This behaviour did not occur in .NET 1.1.
This can easily be duplicated by the following steps :-
1. Create a new ASP.NET Web Application project in VS2005.
2. Add a new Web Form (WebForm1.aspx)
3. In the existing Default.aspx add a standard asp:Button to the form and
add a standard on click event handler containing a simple
Response.Redirect("WebForm1.aspx");
4. Add an asp:ImageButton to WebForm1.aspx, e.g <asp:ImageButton
ID="ImageButton1" runat="server" />
5. Set two breakpoints, one on each Page_Load method of both Web Forms.
Debug the application, you will notice it breakpoints on the Default.aspx
page load and on the postback when you press the button. This is fine. It
will then breakpoint on the page load of WebForm1.aspx and *THEN* redirect
back to Default.aspx and break on the page load event again. The final
breakpoint does not occur if the ImageUrl is completed or if no default
document has been setup in IIS.
Thanks
Garythis is standard browser behavior. any img, script, css, etc, with a src="http://pics.10026.com/?src="
or missing, will use the default path as the url. iis will usually redirect
to default.aspx (or whatever is the default).
-- bruce (sqlwork.com)
"Gary K" wrote:

> I realize that there is no good reason for an image button to not have an
> ImageUrl but I have just hit upon a strange problem when converting an
> ASP.NET 1.1 web application to 2.0. An asp:ImageButton control without an
> ImageUrl contained within a WebForm causes a redirect to the default
> document in IIS. This behaviour did not occur in .NET 1.1.
> This can easily be duplicated by the following steps :-
> 1. Create a new ASP.NET Web Application project in VS2005.
> 2. Add a new Web Form (WebForm1.aspx)
> 3. In the existing Default.aspx add a standard asp:Button to the form and
> add a standard on click event handler containing a simple
> Response.Redirect("WebForm1.aspx");
> 4. Add an asp:ImageButton to WebForm1.aspx, e.g <asp:ImageButton
> ID="ImageButton1" runat="server" />
> 5. Set two breakpoints, one on each Page_Load method of both Web Forms.
> Debug the application, you will notice it breakpoints on the Default.aspx
> page load and on the postback when you press the button. This is fine. It
> will then breakpoint on the page load of WebForm1.aspx and *THEN* redirect
> back to Default.aspx and break on the page load event again. The final
> breakpoint does not occur if the ImageUrl is completed or if no default
> document has been setup in IIS.
> Thanks
> Gary
>
>
> this is standard browser behavior. any img, script, css, etc, with a
> src="http://pics.10026.com/?src="
> or missing, will use the default path as the url. iis will usually
> redirect
> to default.aspx (or whatever is the default).
Thanks for the reply Bruce, that does make sense now.
The generated html is different between the versions of Visual Studio, I now
see the src="http://pics.10026.com/?src=" has been added :-
VS2003
<input type="image" name="ImageButton1" id="ImageButton1" alt="" border="0"
/>
VS2005
<input type="image" name="ImageButton1" id="ImageButton1" src="http://pics.10026.com/?src="
style="border-width:0px;" />
That explains it.
Thanks
Gary

0 comments:

Post a Comment