5 ответов:
ResolveUrl создает URL-адрес относительно корня.
ResolveClientUrl создает URL-адрес относительно текущей страницы.
вы также можете использовать тот, который вы хотите, однако ResolveUrl чаще используется.
вот простой пример:
//Returns: ../HomePage.aspx String ClientURL = ResolveClientUrl("~/HomePage.aspx"); //Returns: /HomePage.aspx String RegURL = ResolveUrl("~/HomePage.aspx"); //Returns: C:\inetpub\wwwroot\MyProject\HomePage.aspx String ServerMappedPath = Server.MapPath("~/HomePage.aspx"); //Returns: ~/HomePage.aspx String appRelVirtPath = AppRelativeVirtualPath; //Returns: http://localhost:4913/ String baseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath; //Returns: "http://localhost:4913/HomePage.aspx" String absUri = Request.Url.AbsoluteUri;
согласно документации MSDN:
полный URL-адрес указанного ресурс соответствующий для пользы на браузер.
используйте метод ResolveClientUrl для возвращает строку URL, подходящую для использования клиент для доступа к ресурсам веб-сервер, например файлы изображений, ссылки на дополнительные страницы, и так на.
преобразованный URL.
если параметр relativeUrl содержит абсолютный URL-адрес, URL-адрес возвращается без изменений. Если параметр relativeUrl содержит относительный URL-адрес, этот URL-адрес изменяется на относительный URL-адрес, правильный для текущего пути запроса, чтобы браузер мог разрешить URL-адрес.
например, рассмотрим следующую сценарий:
клиент запросил ASP.NET страница который содержит пользовательский элемент управления, который имеет образ, связанный с ним.
ASP.NET страница находится по адресу /Магазин/страница1.aspx.
пользовательский элемент управления находится по адресу / Store / UserControls / UC1.ascx вносятся.
файл изображения находится в /Элементы Управления UserControl/Изображения/Рис1.формат jpg.
если пользовательский элемент управления передает относительный путь к изображению (то есть, /Магазин/Элементы Управления UserControl/Изображения/Рис1.формат jpg) к метод ResolveUrl, метод возвращает значение / Images / Image1.формат jpg.
Я думаю, что это объясняет это довольно хорошо.
короче:
Page.ResolveUrl(~): creates the URL from the root of app.и
Page.ResolveClientUrl(~): creates the URL relative to the current page.(e.g: ../../..)но в моих тестах в asp.net, страница.ResolveUrl лучше из-за стабильного выхода и не является относительным.
Используя Страницы.ResolveUrl лучше, если вы пытаетесь получить дружественный Url-адрес Javascript.
например, если вы открываете iframe с родительской страницы, вам понадобится полный url-адрес, который будет передан свойству iframe src.
Comments