Solved

ASP.NET Server Tag Not Parsing in URL Field

Posted on 2014-04-23
2
386 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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

808 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