Solved

ASP.NET Server Tag Not Parsing in URL Field

Posted on 2014-04-23
2
366 Views
Last Modified: 2014-04-24
Experts,

I'm banging my head against a wall here, and I'm sure this is a simple syntax issue.  I am working with a ListView control, and I'm trying to construct a hyperlink that parses a datafield into the query string of a URL (the page that is being called in the URL serves the image data from the provided filename back as a filestream because the image being called resides in a location outside the application folder.)

<asp:HyperLink	runat="server"
		NavigateUrl='~/ServeFFAttachment.aspx?FileName=<%# Eval("ATTACHMENT_PATH") %>'
		Target="_blank">
	<%# Eval("ATTACHMENT_DESC") %>
</asp:HyperLink>

Open in new window


The server doesn't choke on the code, but the URL that gets associated with the hyperlink isn't evaluating the server tag (see below.)

http://serverfqdn:55555/ServeFFAttachment.aspx?FileName=<%# Eval("ATTACHMENT_PATH") %>

Open in new window


I should point out that this worked fine before I added the ASPX page to the URL (code below worked...)

<asp:HyperLink	runat='server'
		NavigateUrl='<%# Eval("ATTACHMENT_PATH") %>'
		Target='_blank'>
	<%# Eval("ATTACHMENT_DESC") %>
</asp:HyperLink>

Open in new window


Why does adding "~/ServeFFAttachment.aspx?FileName=" before the Server Tag mess it up??

HELP!!  :-)

Thanks,

John
0
Comment
Question by:John Parker
2 Comments
 
LVL 35

Accepted Solution

by:
Robert Schutt earned 500 total points
ID: 40018381
When you want to include a binding value in the url attribute, the whole value needs to be generated from within the asp tags.

One possible way would be:
NavigateUrl='<%# Eval("ATTACHMENT_PATH", "~/ServeFFAttachment.aspx?FileName={0}") %>'

Open in new window


Note that the query parameter in your generated url should actually be url encoded to make valid html, if that's important in your case you could try something like:
NavigateUrl='<%# String.Format("~/ServeFFAttachment.aspx?FileName={0}", HttpUtility.UrlEncode(Eval("ATTACHMENT_PATH"))) %>'

Open in new window

0
 

Author Closing Comment

by:John Parker
ID: 40021012
Robert,

That was it!  Thank you very much for the quick response!  I did have to make one minor change to the use of the URLEncoded function...  I had to add the ToString method to the Eval function for it to work.  Otherwise the compiler didn't like it.

NavigateUrl='<%# String.Format("~/ServeFFAttachment.aspx?FileName={0}", HttpUtility.UrlEncode(Eval("ATTACHMENT_PATH").ToString())) %>' 

Open in new window


Thanks again!

John
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now