Solved

ASP.NET Server Tag Not Parsing in URL Field

Posted on 2014-04-23
2
397 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

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

In this Article, I will provide a few tips in problem and solution manner. Opening an ASPX page in Visual studio 2003 is very slow. To make it fast, please do follow below steps:   Open the Solution/Project. Right click the ASPX file to b…
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…

724 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