aspose.info
EN

ASCX File Format, Mastering the ASCX File

Updated

What is an ASCX file?

A file with .ascx extension is a user control that is used as a reusable component in webpages. It is referenced in any ASP website by dragging it from the control box to the page. ASCX users controls are added to the project as a central source, resulting in any change in the user control to be reflected across the whole website. Unlike ASMX files which define a mechanism to communicate within 2 objects over the internet, ASCX files are user controls for embedding in pages or website.

ASCX File Format

ASCX files are writting in plain text format and can use code behind feature like web pages which ends with .ascx.cs. Markup code of user controls starts with @Control directive as shown in the following example.

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="WebUserControl.ascx.vb" Inherits="WebUserControl" %>
<p>A simple web user control with static HTML only.</p>

This web user control can be reused on many pages such as page footer, header or some kind of site navigation. Web user controls have properties, methods and events like any other contorl which make them useful in setting their visual behaviour.

Example of Registering user controls in web.config

In order to use a single user control on many pages, the web control can be registered in web.config. This allows to use the control over all the website instead of registering on each page individually. The following sample code defines how to register a web control in web.config to be displayed as footer on entire website.

<configuration>
  <system.web>
    <pages>
      <controls>
        <add src="Footer.ascx" tagPrefix="bs" tagName="footer" />
      </controls >
    </pages >
  </system.web>
</configuration>

Key Characteristics of the ASCX File Format

CharacteristicDescription
Reusable Without RecompilationASCX files can be modified and reused across an application without recompiling the entire project, supporting rapid development cycles.
Limited ScopeUnlike full web pages, ASCX controls cannot be requested directly by browsers—they must be hosted within an .aspx page or another user control.
Inheritance HierarchyAll user controls inherit from System.Web.UI.UserControl, providing a consistent base class with standardized properties and methods.
Composite ControlsASCX files can contain other ASCX controls, enabling hierarchical component architectures and complex composite interfaces.
No @Page DirectiveSupports the @OutputCache directive for fragment caching, allowing selective performance optimization of individual components.
PortabilityUser controls can be shared across multiple projects or converted to server controls for distribution in compiled assemblies.

FAQ

Q1: What is the main advantage of using ASCX files?

A: They enable reusable UI components that reduce code duplication and simplify maintenance across ASP.NET web applications.

Q2: Can ASCX files run independently as web pages?

A: No, they must be hosted within an ASPX page or another user control as they lack the complete structure of standalone pages.

Q3: How do ASCX files differ from master pages?

A: Master pages define overall page templates, while ASCX files create reusable content blocks within those templates.

Q4: Are ASCX controls compatible with ASP.NET Core?

A: No, ASP.NET Core uses different component models like View Components, Tag Helpers, and Razor Components instead.

Q5: Can ASCX files be converted to server controls?

A: Yes, through a process called “ascx to custom server control” conversion for distribution in compiled assemblies.

References

See also