ClientScriptManager.GetWebResourceUrl(Type, String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает ссылку URL-адреса на ресурс в сборке.
public:
System::String ^ GetWebResourceUrl(Type ^ type, System::String ^ resourceName);
public string GetWebResourceUrl (Type type, string resourceName);
member this.GetWebResourceUrl : Type * string -> string
Public Function GetWebResourceUrl (type As Type, resourceName As String) As String
Параметры
- type
- Type
Тип ресурса.
- resourceName
- String
Полное имя ресурса в сборке.
Возвращаемое значение
Ссылка URL-адреса на ресурс.
Исключения
Тип веб-ресурса — null
.
-или-
Имя веб-ресурса — null
.
-или-
Длина имени веб-ресурса равна 0.
Примеры
В следующем примере кода показано использование GetWebResourceUrl метода .
Параметру type в этом примере присваивается тип класса в сборке, содержащей ресурс. Параметр resourceName
указывается с полным путем к ресурсу, который включает пространство имен по умолчанию.
<%@ Page Language="C#"%>
<%@ Import Namespace="Samples.AspNet.CS.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the resource name and type.
String rsname = "Samples.AspNet.CS.Controls.script_include.js";
Type rstype = typeof(ClientScriptResourceLabel);
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Write out the web resource url.
ResourcePath.InnerHtml = cs.GetWebResourceUrl(rstype, rsname);
// Register the client resource with the page.
cs.RegisterClientScriptResource(rstype, rsname);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
The web resource path is
<span id="ResourcePath"
runat="server"/>.
<br />
<br />
<input type="text"
id="Message" />
<input type="button"
onclick="DoClick()"
value="ClientClick" />
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="Samples.AspNet.VB.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the resource name and type.
Dim rsname As String = "Samples.AspNet.VB.Controls.script_include.js"
Dim rstype As Type = GetType(ClientScriptResourceLabel)
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Write out the web resource url.
ResourcePath.InnerHtml = cs.GetWebResourceUrl(rstype, rsname)
' Register the client resource with the page.
cs.RegisterClientScriptResource(rstype, rsname)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
The web resource path is
<span id="ResourcePath"
runat="server"/>.
<br />
<br />
<input type="text"
id="Message" />
<input type="button"
onclick="DoClick()"
value="ClientClick" />
</form>
</body>
</html>
В следующем примере кода показано, как программно применить WebResourceAttribute атрибут метаданных, чтобы пометить сборку для обслуживаемого ресурса. Скомпилируйте следующий класс в библиотеке классов с пространством имен по умолчанию, равным Samples.AspNet.CS.Controls
или Samples.AspNet.VB.Controls
, в зависимости от используемого языка.
using System;
using System.Web;
using System.Web.UI;
using System.Security.Permissions;
[assembly: WebResource("Samples.AspNet.CS.Controls.script_include.js", "application/x-javascript")]
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public class ClientScriptResourceLabel
{
// Class code goes here.
}
}
Imports System.Web
Imports System.Web.UI
Imports System.Security.Permissions
<Assembly: WebResource("Samples.AspNet.VB.Controls.script_include.js", "application/x-javascript")>
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class ClientScriptResourceLabel
' Class code goes here.
End Class
End Namespace
Для этого примера требуется файл JavaScript с именем Script_include.js
. Файл .js является внедренным ресурсом в сборку, содержащую ClientScriptResourceLabel
объект . Если вы используете Visual Studio, в окне Свойства проекта библиотеки классов установите для параметра Действие сборки значение Внедренный ресурс при выборе файла скрипта. При компиляции библиотеки в командной строке используйте параметр /resource , чтобы внедрить ресурс.
function DoClick() {Form1.Message.value='Text from resource script.'}
Комментарии
Метод GetWebResourceUrl возвращает URL-ссылку на ресурс, внедренный в сборку. Возвращаемая ссылка не закодирована в URL-адресе. Ресурсы могут быть файлами скриптов, изображениями или любым статическим файлом. Тип указывается на основе объекта, который будет обращаться к ресурсу.
Веб-ресурс, зарегистрированный на странице, однозначно идентифицируется по типу и имени. На странице можно зарегистрировать только один ресурс с заданной парой типа и имени. Попытка зарегистрировать уже зарегистрированный ресурс не приводит к созданию дубликата зарегистрированного ресурса.
Метод GetWebResourceUrl используется в сочетании с методом RegisterClientScriptResource для доступа к ресурсам, внедренным в сборки. Дополнительные сведения об использовании ресурсов в приложениях см. в статье Общие сведения о ресурсах веб-страниц ASP.NET.