Udostępnij za pośrednictwem


ClientScriptManager.GetWebResourceUrl(Type, String) Metoda

Definicja

Pobiera odwołanie do adresu URL zasobu w zestawie.

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

Parametry

type
Type

Typ zasobu.

resourceName
String

W pełni kwalifikowana nazwa zasobu w zestawie.

Zwraca

Odwołanie do adresu URL zasobu.

Wyjątki

Typ zasobu internetowego to null.

-lub-

Nazwa zasobu internetowego to null.

-lub-

Nazwa zasobu internetowego ma długość zero.

Przykłady

W poniższym przykładzie kodu pokazano użycie GetWebResourceUrl metody . Parametr type w tym przykładzie jest ustawiony na typ klasy w zestawie zawierającym zasób. Parametr resourceName jest określony przy użyciu w pełni kwalifikowanej ścieżki do zasobu, który zawiera domyślną przestrzeń nazw.

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

W poniższym przykładzie kodu pokazano, jak programowo zastosować WebResourceAttribute atrybut metadanych, aby oznaczyć zestaw dla zasobów, które zostaną obsłużone. Skompiluj następującą klasę w bibliotece klas z domyślną przestrzenią nazw ustawioną na Samples.AspNet.CS.Controls lub Samples.AspNet.VB.Controls, w zależności od używanego języka.

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

W tym przykładzie wymagany jest plik JavaScript o nazwie Script_include.js. Plik .js jest zasobem osadzonym w zestawie zawierającym ClientScriptResourceLabel obiekt . Jeśli używasz programu Visual Studio, w oknie Właściwości projektu biblioteki klas ustaw wartość Akcja kompilacji na Zasób osadzony po wybraniu pliku skryptu. Jeśli kompilujesz bibliotekę w wierszu polecenia, użyj przełącznika /resource , aby osadzić zasób.

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

Uwagi

Metoda GetWebResourceUrl zwraca odwołanie adresu URL do zasobu osadzonego w zestawie. Zwrócone odwołanie nie jest zakodowane w adresie URL. Zasoby mogą być plikami skryptów, obrazami lub dowolnym plikiem statycznym. Typ określa się na podstawie obiektu, który będzie uzyskiwał dostęp do zasobu.

Zasób internetowy zarejestrowany na stronie jest jednoznacznie identyfikowany przez jego typ i nazwę. Na stronie można zarejestrować tylko jeden zasób o danym typie i parze nazw. Próba zarejestrowania zasobu, który jest już zarejestrowany, nie powoduje utworzenia duplikatu zarejestrowanego zasobu.

Metoda GetWebResourceUrl jest używana w połączeniu RegisterClientScriptResource z metodą uzyskiwania dostępu do zasobów osadzonych w zestawach. Aby uzyskać więcej informacji na temat korzystania z zasobów w aplikacjach, zobacz ASP.NET Web Page Resources Overview (Omówienie zasobów strony internetowej ASP.NET Sieci Web).

Dotyczy

Zobacz też