Compartir a través de


ClientScriptManager.GetWebResourceUrl(Type, String) Método

Definición

Obtiene una referencia de la dirección URL de un recurso en un ensamblado.

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 de recurso.

resourceName
String

Nombre completo del recurso en el ensamblado.

Devoluciones

Referencia de la dirección URL al recurso.

Excepciones

El tipo de recurso de Web es null.

o bien

El nombre del recurso de Web es null.

o bien

El nombre del recurso del Web tiene una longitud de cero.

Ejemplos

En el ejemplo de código siguiente se muestra el uso del GetWebResourceUrl método . El parámetro type de este ejemplo se establece en el tipo de clase del ensamblado que contiene el recurso. El resourceName parámetro se especifica con la ruta de acceso completa al recurso, que incluye el espacio de nombres predeterminado.

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

En el ejemplo de código siguiente se muestra cómo aplicar mediante programación el WebResourceAttribute atributo de metadatos para marcar el ensamblado de los recursos que se atenderán. Compile la siguiente clase en una biblioteca de clases con un espacio de nombres predeterminado establecido Samples.AspNet.CS.Controls en o Samples.AspNet.VB.Controls, en función del lenguaje que use.

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

En este ejemplo se requiere un archivo JavaScript denominado Script_include.js. El archivo .js es un recurso incrustado en el ensamblado que contiene el ClientScriptResourceLabel objeto . Si usa Visual Studio, en la ventana Propiedades del proyecto de biblioteca de clases, establezca Acción de compilación en Recurso incrustado cuando se seleccione el archivo de script. Si va a compilar la biblioteca en la línea de comandos, use el modificador /resource para insertar el recurso.

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

Comentarios

El GetWebResourceUrl método devuelve una referencia url a un recurso incrustado en un ensamblado. La referencia devuelta no tiene codificación URL. Los recursos pueden ser archivos de script, imágenes o cualquier archivo estático. Especifique el tipo basado en el objeto que va a tener acceso al recurso.

Un recurso web registrado con la página se identifica de forma única por su tipo y nombre. Solo se puede registrar un recurso con un tipo determinado y un par de nombres con la página. Si se intenta registrar un recurso que ya está registrado, no se crea un duplicado del recurso registrado.

El GetWebResourceUrl método se usa junto con el RegisterClientScriptResource método para acceder a los recursos incrustados en ensamblados. Para obtener más información sobre el uso de recursos en aplicaciones, consulte ASP.NET Información general sobre los recursos de la página web.

Se aplica a

Consulte también