В чем разница между ResolveUrl и ResolveClientUrl?



Я использую ResolveUrl для добавления CSS и Javascript в ASP.NET файлы.



но я обычно вижу вариант ResolveClientUrl. В чем разница между тем и другим?



когда я должен использовать ResolveClientUrl?

649   5  

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:

ResolveClientUrl

полный URL-адрес указанного ресурс соответствующий для пользы на браузер.

используйте метод ResolveClientUrl для возвращает строку URL, подходящую для использования клиент для доступа к ресурсам веб-сервер, например файлы изображений, ссылки на дополнительные страницы, и так на.

ResolveUrl

преобразованный 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

    Ничего не найдено.