Compartilhar via


ClientScriptManager.GetWebResourceUrl(Type, String) Método

Definição

Obtém uma referência de URL para um recurso em um assembly.

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

Parâmetros

type
Type

Tipo do recurso.

resourceName
String

O nome totalmente qualificado do recurso no assembly.

Retornos

A referência de URL para o recurso.

Exceções

O tipo de recurso da Web é null.

- ou -

O nome do recurso da Web é null.

- ou -

O nome do recurso da Web tem comprimento zero.

Exemplos

O exemplo de código a seguir demonstra o uso do GetWebResourceUrl método . O parâmetro de tipo neste exemplo é definido como o tipo de classe no assembly que contém o recurso. O resourceName parâmetro é especificado com o caminho totalmente qualificado para o recurso, que inclui o namespace padrão.

<%@ 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>

O exemplo de código a seguir demonstra como aplicar programaticamente o WebResourceAttribute atributo de metadados para marcar o assembly para os recursos que serão atendidos. Compile a classe a seguir em uma biblioteca de classes com um namespace padrão definido Samples.AspNet.CS.Controls como ou Samples.AspNet.VB.Controls, dependendo do idioma que você está usando.

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

Este exemplo requer um arquivo JavaScript chamado Script_include.js. O arquivo .js é um recurso inserido no assembly que contém o ClientScriptResourceLabel objeto . Se você estiver usando o Visual Studio, na janela Propriedades do projeto de biblioteca de classes, defina Ação de Build como Recurso Inserido quando o arquivo de script for selecionado. Se você estiver compilando a biblioteca na linha de comando, use a opção /resource para inserir o recurso.

function DoClick() {Form1.Message.value='Text from resource script.'}  

Comentários

O GetWebResourceUrl método retorna uma referência de URL para um recurso inserido em um assembly. A referência retornada não é codificada por URL. Os recursos podem ser arquivos de script, imagens ou qualquer arquivo estático. Especifique o tipo com base no objeto que acessará o recurso.

Um recurso da Web registrado com a página é identificado exclusivamente por seu tipo e nome. Somente um recurso com um determinado tipo e par de nomes pode ser registrado com a página. Tentar registrar um recurso que já está registrado não cria uma duplicata do recurso registrado.

O GetWebResourceUrl método é usado em conjunto com o RegisterClientScriptResource método para acessar recursos inseridos em assemblies. Para obter mais informações sobre como usar recursos em aplicativos, consulte Visão geral dos recursos da página da Web ASP.NET.

Aplica-se a

Confira também