.net - Absolute Vs Relative Path?
Dec 14, 2010Possible Duplicate: Absolute path & Relative Path
When to use absolute path, relative path and what is the difference between both?
Possible Duplicate: Absolute path & Relative Path
When to use absolute path, relative path and what is the difference between both?
I am Final Year IT Engineering student. I am Doing Content Management System in ASP.net for my college. I have given link on my master page for various pages in the application; where I have specified only relative path of those pages. When I run this project and follow any link it works well for only first time and for second time when I click any link it .net run time environment unable to find the absolute address of that page.
View 2 RepliesWhen I write following code in my view
<% Url.Action("Logon") %>
the mvc framework generates
/Account/Logon ({controller}/{action})
as path.
'/Account/Logon' path is an absolute path. Is there a way to change is to a relative path, like Account/Logon or ../Account/Logon.
Also, when I use the Html.Beginform(), the mvc framework generates <form action="/account/logon"..., I want to change this to <form action="account/logon"...So, problem is that I want relative paths instead of absolute path.
I am really surprised that there is no native .NET method to get an absolute url from a relative url. I know this has been discussed many times, but never have come across a satisfactory method that handles this well. I think all I need left is to auto choose the protocol instead of hard coding it (http/https). Anything else I am missing (caveats, performance, etc)?
public static string GetAbsoluteUrl(string url)
{
//VALIDATE INPUT FOR ALREADY ABSOLUTE URL
if (url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || url.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
{
return url;
}
//GET PAGE REFERENCE FOR CONTEXT PROCESSING
Page page = HttpContext.Current.Handler as Page;
//RESOLVE PATH FOR APPLICATION BEFORE PROCESSING
if (url.StartsWith("~/"))
{
url = page.ResolveUrl(url);
}
//BUILD AND RETURN ABSOLUTE URL
return "http://" + page.Request.ServerVariables["SERVER_NAME"] + "/" + url.TrimStart('/');
}
i am fetching image using webservice into dataset and displaying for that its to be get worked after deployment i have done following line of code but its still not able to display the image after deployment
String imageName = row["ImageName"].ToString();
String physicalPath = HttpContext.Current.Request.Url.AbsoluteUri.ToString();
String imagePath = physicalPath.Substring(0, physicalPath.LastIndexOf("/",
StringComparison.OrdinalIgnoreCase) + 1) + imageName;
Scenario is I have a application relative url like "~/path/to/page.aspx?query=string". I need to programatically create a web request to that page and currently using WebRequest.Create. The problem is WebRequest.Create requires a fully qualified url including the protocol/domain/port etc.I have access to the current Request.Url object but there doesn't seem to be an easy way to get just the base url keeping the protocol (HTTP vs HTTPS) as well as any port numbers as well as the path to the applicationI mean all the info there, so if need be I could just take all the parts and combine them but it seems like it might be error prone and it would be great to have something built-in that's well tested to do the job. Page.ResolveUrl gets me almost there, but it's missing the protocol and the domain/port.
View 1 RepliesI have this master page, that uses a few .js files and a flash animation.
the <script> and <object> tags that are used to embed these in the page take in relative paths as src. However, since the pages .aspx, i'll need to convert these into tilde paths, ie. somehow change the relative paths to tilde path (is this the absolute path?), so that i can use the master page in any of my pages in subfolders as well. if this question has been posted b4, kindly give me a link... i've not been able to find a solution.
I just want to position the first label in a position on the left and then the start position of the second label at a position. I can't use relative because of the different lengths of the strings. But I the absolute will not work. I tried putting position relative in the cssclass phoneCostsStyle but it doesn't work.
[code]....
I created a survey in vb.net where results are stored in an Excel file.Locally I can access and update the data of the file, but if I put online can not correctly access the excel file.How can I determine the absolute url of the file so, when a user submits the answers they can be inserted correctly in the excel file? Currently I use this to determine the location of the file:
Dim LocalizacaoFicheiro As String = String.Concat(Server.MapPath("."), "RespostasQuestionario.xlsx")
In ASP.NET MVC 2, how can I get the absolute path to the Content folder from within a model?I'm trying to check for the existence of a file by calling IO.File.Exists. So, I need to convert the "~ContentisFile.png" relative path to an absolute path.I tried getting the application's directory path by calling My.Application.Info.DirectoryPath but that returned some temporary folder that doesn't contain the Content folder.
View 2 RepliesHow do you calculate a relative path in ASP.NET MVC?
View 2 RepliesI have a Datalist where I want to retrive Images from a folder and I have done URL rewritting so Images is not displaying when I write something like this:
<asp:HyperLink ID="HyperLink1" ImageUrl='<%# Bind("Product_Image", "~/ProductImages/{0}") %>'
NavigateUrl='<%#"http://localhost:49524Mysite/Product/" + stringToBase64String(Eval("ProductID").ToString())%>' CommandName="IMG" CommandArgument='<%# Eval("ProductID")%>' runat="server"></asp:HyperLink>
[CODE]..
I don't want to write whole URL.
I've got this app where I'm using an IHttpHandler to serve JSON data to my JavaScript method.
[code]....
This works fine on my "localhost" webserver, but I've also got a staging server for my clients to use. http://staging.infinitas.ws/ClientSite/
The problem that I'm having is that when the app is hosted on the staging server, the theSource is mapped incorrectly (contains /ClientSite/). I could do something like a String.Replace but I'm looking for a more elegant way of achieving this.
I am trying to get a FileStream from a relative path. The file is in my project, but when I try to do that it automatically appends C:\ in front of that.
1. Does the FileStream only works if the file is on a local Hard Dive?
2. Also if it works from the local hard drive, then does my application needs some permission to read the file from C Drive?
I have three projects inside my solution and i using some same images on all of three projects. How can i create relative path from one project to another?
View 4 RepliesI have a string variable called pdfdestination which points to a file on another server. This string is "\\mars\IntranetUploads\pdf\testpdf1.pdf"; The following code doesn't work:
[Code]....
and the reason is that it won't just directly input that string into the address bar, but instead the path it tries to access begins at the root of my application. In other words, the resulting URL comes out like: [URL] I simply need the browser to directly access: \marsIntranetUploadspdf estpdf1.pdf
what it does at the moment is return an absolute path for example h:myfile . however, this is causing me problems because when browsing to the page, it is not returning the file i need because it is looking for a h: drive which the client machine does not have. so i was thinking i need to return a relative path so the not looking straight to the h: drive and rather it is just looking for the filename. i have also created this as a virtual directory on iis which is where is looks for the file location.
View 8 RepliesAssuming I have a .css file with the following linebody { background-image: url('../images/bg.png') }My build process does some CSS magic and eventuall move this file from
~/Content/styles/styles.css
To
~/temp/styles.css
This invalidates the url statement in the file and needs re-written to ../Content/images/bg.pngThis is my question - given the original file location, the new file location and the background-image url in the file is there a reusable way calculate a new relative path for the image?In case someone doesn't know css urls should be relative to the css file it is contained within.
my asp.net program have to open pdf files, these files are contained in a directory named "pdf",
The problem is: The webpage doesn't find the relative directory "/pdf" ; to solve the problem I have to write the exaclty path "C:inetpubwwrootsitepdf" butI want to use only the relative path to avoid other problems.
I have an XML file named PageData.xml in my App_Data folder. I want to populate an XDocument with this file using XDocument.Load.
If I supply the full physical path it works, i.e.:
XDocument vXDoc = XDocument.Load("/Work/Project/Web/100413 Dev/App_Data/PageData.xml");
...where "Work" is a folder on my C: drive.
If I try a relative path like this, though, I get a DirectoryNotFoundException:
XDocument vXDoc = XDocument.Load("AppData/PageData.xml");
"Could not find a part of the path 'C:Program Files (x86)Common FilesMicrosoft SharedDevServer10.0AppDataPageData.xml'."
This is obviously wrong, but there must be an easy way to set the correct relative path?
OK, I've seen a lot of ambiguous errors, but this was is in the top 20 or so. I have a RenderPartial that looks like this:
[Code]....
When the view loads, I get this error:
The relative virtual path '~Areas/User/Views/Shared/ProjectStats.ascx' is not allowed here. That really helps. Why isn't it allowed there? What's wrong with it? Just above it I have other PartialRender calls that work without a problem. They're created exactly the same way. Here's another:
[Code]....
This works fine. I thought maybe it was due to accessing a view from another Area, but I added a partial view to that Area's folder and it still didn't work.
i would know if is possible and how i can retrieve the current relative path of the view that is executed. The code is in a model file (C#)
View 2 RepliesSuppose I have a resource located in ~/Resources/R1.png This resource's relative URL will vary depending on the current address.
For instance: If I'm at www.foo.com/A/B/C/D.aspx and the www.foo.com/A is the root path including Virtual Directory, then the path relative to the current address of ~/Resources/R1.png is ../../../Resources/R1.png
How can I get this relative path?
EDIT:
I want a web path that I can use in a web page, not a server path.
I have to access a relative path of the XSD file to validate a XML file. The XML file and the XSD file are part of the class library. How do I access the relative path in the class library?
In case of website, I would use server.mappath(path). Is there anything similar to get the virtual path to the corresponding physical directory on the server in the class library?
How to give absolute path, that working with virtual directory and localhost
/Image/Icon.jpg - it is working well with localhost
/Image/Icon.jpg - It is not working on Virtual directory
I want absolute path solution which is working on both virtual and localhost directory