Freigeben über


ClientScriptManager.GetWebResourceUrl(Type, String) Methode

Definition

Ruft einen URL-Verweis auf eine Ressource in einer Assembly ab.

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

Parameter

type
Type

Der Typ der Ressource.

resourceName
String

Der vollqualifizierte Name der Ressource in der Assembly.

Gibt zurück

Der URL-Verweis auf die Ressource.

Ausnahmen

Der Webressourcentyp ist null.

- oder -

Der Webressourcenname ist null.

- oder -

Der Webressourcenname hat eine Länge von 0 (null).

Beispiele

Im folgenden Codebeispiel wird die Verwendung der GetWebResourceUrl -Methode veranschaulicht. Der Typparameter in diesem Beispiel ist auf den Typ der Klasse in der Assembly festgelegt, die die Ressource enthält. Der resourceName Parameter wird mit dem vollqualifizierten Pfad zur Ressource angegeben, der den Standardnamespace enthält.

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

Im folgenden Codebeispiel wird veranschaulicht, wie das WebResourceAttribute Metadatenattribute programmgesteuert angewendet wird, um die Assembly für die Ressourcen zu markieren, die bereitgestellt werden. Kompilieren Sie die folgende Klasse in einer Klassenbibliothek, wobei ein Standardnamespace auf Samples.AspNet.CS.Controls oder Samples.AspNet.VB.Controlsfestgelegt ist, je nachdem, welche Sprache Sie verwenden.

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

In diesem Beispiel ist eine JavaScript-Datei mit dem Namen Script_include.jserforderlich. Die .js-Datei ist eine eingebettete Ressource in der Assembly, die das ClientScriptResourceLabel -Objekt enthält. Wenn Sie Visual Studio verwenden, legen Sie im Fenster Eigenschaften des Klassenbibliotheksprojekts Buildaktion auf Eingebettete Ressource fest, wenn die Skriptdatei ausgewählt ist. Wenn Sie die Bibliothek über die Befehlszeile kompilieren, verwenden Sie den Schalter /resource , um die Ressource einzubetten.

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

Hinweise

Die GetWebResourceUrl -Methode gibt einen URL-Verweis auf eine ressource zurück, die in einer Assembly eingebettet ist. Der zurückgegebene Verweis ist nicht URL-codiert. Ressourcen können Skriptdateien, Bilder oder eine beliebige statische Datei sein. Sie geben den Typ basierend auf dem Objekt an, das auf die Ressource zugreift.

Eine bei der Seite registrierte Webressource wird durch ihren Typ und Namen eindeutig identifiziert. Nur eine Ressource mit einem bestimmten Typ- und Namenspaar kann bei der Seite registriert werden. Beim Versuch, eine bereits registrierte Ressource zu registrieren, wird kein Duplikat der registrierten Ressource erstellt.

Die GetWebResourceUrl -Methode wird in Verbindung mit der -Methode für den RegisterClientScriptResource Zugriff auf in Assemblys eingebettete Ressourcen verwendet. Weitere Informationen zur Verwendung von Ressourcen in Anwendungen finden Sie unter Übersicht über ASP.NET Webseitenressourcen.

Gilt für:

Weitere Informationen