Gets a URL reference to a resource in an assembly.
Namespace:
System.Web.UI
Assembly:
System.Web (in System.Web.dll)
Visual Basic (Declaration)
Public Function GetWebResourceUrl ( _
type As Type, _
resourceName As String _
) As String
Dim instance As ClientScriptManager
Dim type As Type
Dim resourceName As String
Dim returnValue As String
returnValue = instance.GetWebResourceUrl(type, _
resourceName)
public string GetWebResourceUrl(
Type type,
string resourceName
)
public:
String^ GetWebResourceUrl(
Type^ type,
String^ resourceName
)
public function GetWebResourceUrl(
type : Type,
resourceName : String
) : String
| Exception | Condition |
|---|
| ArgumentNullException | The web resource type is nullNothingnullptra null reference (Nothing in Visual Basic). |
| ArgumentNullException | The web resource name is nullNothingnullptra null reference (Nothing in Visual Basic). - or - The web resource name has a length of zero. |
The GetWebResourceUrl method returns a URL reference to a resource embedded in an assembly. The returned reference is not URL encoded. Resources can be script files, images, or any static file. You specify the type based on the object that will be accessing the resource.
A Web resource registered with the page is uniquely identified by its type and name. Only one resource with a given type and name pair can be registered with the page. Attempting to register a resource that is already registered does not create a duplicate of the registered resource.
The GetWebResourceUrl method is used in conjunction with the RegisterClientScriptResource method for accessing resources embedded in assemblies. For more information on using resources in applications, see ASP.NET Web Page Resources Overview.
The following code example demonstrates the use of the GetWebResourceUrl method. The type parameter in this example is set to the type of class in the assembly containing the resource. The resourceName parameter is specified with the fully qualified path to the resource, which includes the default namespace.
<%@ 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 >
<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="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 >
<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>
The following code example demonstrates how to programmatically apply the WebResourceAttribute metadata attribute to mark the assembly for the resources that will be served. Compile the following class in a class library with a default namespace set to Samples.AspNet.CS.Controls or Samples.AspNet.VB.Controls, depending on what language you are using.
Imports Microsoft.VisualBasic
Imports System
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
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.
}
}
This example requires a JavaScript file named Script_include.js. The .js file is an embedded resource in the assembly that contains the ClientScriptResourceLabel object. If you are using Visual Studio, in the Properties window of the class library project, set Build Action to Embedded Resource when the script file is selected. If you are compiling the library at the command line, use the /resource switch to embed the resource.
function DoClick() {Form1.Message.value='Text from resource script.'}
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.NET Framework
Supported in: 3.5, 3.0, 2.0
Reference
Other Resources