Strange issue with ImageButton with no ImageUrl


G

Gary K

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
 
Ad

Advertisements

B

bruce barker

this is standard browser behavior. any img, script, css, etc, with a 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)
 
Ad

Advertisements

G

Gary K

this is standard browser behavior. any img, script, css, etc, with a
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="" has been added :-

VS2003
<input type="image" name="ImageButton1" id="ImageButton1" alt="" border="0"
/>

VS2005
<input type="image" name="ImageButton1" id="ImageButton1" src=""
style="border-width:0px;" />

That explains it.

Thanks

Gary
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top