何时需要使用.ascx文件以及如何使用它们?

111

在构建网站时,何时使用 .ascx 文件是个好主意?.ascx 文件是什么以及它的作用是什么?举例会很有帮助,谢谢!

7个回答

115

这是你项目中拥有的用户控件的扩展。

用户控件是一种组合控件,类似于 ASP.NET 网页,您可以向用户控件添加现有的 Web 服务器控件和标记,并为控件定义属性和方法。然后,您可以将它们嵌入到 ASP.NET 网页中,它们就像一个单元一样运作。

简单来说,如果您想要在项目中的许多页面上使用某些功能,则应创建一个用户控件或组合控件,并在页面中使用它。这只是帮助您将相同的功能和代码放在一个地方,使其更易于重用


1
难道使用主页不足以满足需求吗?我们不能在主页的代码后台中编写功能逻辑吗? - Bhaumik Bhatt

13

当我们需要在应用程序的不同位置使用类似功能时,基本上会使用用户控件。就像我们使用主页来保持应用程序外观和感觉的一致性,为了避免在整个应用程序中重复相同的功能和UI,我们使用用户控件。可能还有更多的用途,但我只知道这一个...

例如,假设您的网站有4个用户级别,每个用户下面都有不同的目录和不同的访问机制。如果要请求所有用户的地址信息,则需要在每个页面上创建街道、城市、州、邮编等地址字段。这将是一项重复性的工作。相反,您可以将其创建为ascx文件(用户控件扩展名)并在此控件中放置必要的UI和按角色分配地址角色及其它业务代码,然后简单地引用到所需的所有页面。

因此,通过使用用户控件,可以避免为每个角色重复编写代码和UI创建。


12

Ascx文件被称为用户控件,旨在实现可重用性,同时减少复杂的aspx页面(提取页面的某个部分)。它们还可以用于实现所谓的甜甜圈缓存,即当您想要缓存页面的某个部分时。


5
如果您有一段代码+ html出现在多个页面上,并且与该页面有些独立(比如最新新闻的块),您可以复制/粘贴代码到每个页面中。但更好的方法是将该代码放在自己的块中,然后只需在需要它的每个页面上包含该块。这个“块”是一个ascx文件。

2

.ascx文件的另一个用途是,在ASP.NET页面中可以用于部分页面缓存。我们需要做的是创建一个ascx文件,然后将需要缓存的控件或页面部分移动到该控件中。然后在ascx控件中添加@OutputCache指令,它将与父页面分开缓存。当您不想缓存整个页面,而只想缓存页面的特定部分时,可以使用它。


2

ASCX文件是用于Web开发的服务器端Web应用程序框架,旨在生成动态Web页面。它们类似于DLL代码,但您可以使用其中的标记。

您可以编写一次并在ASP页面的任何位置使用它们。如果您有一个名为“Controll.ascx”的文件,那么它的代码将被命名为“Controll.ascx.cs”。

您可以嵌入它在ASP页面中以便使用它:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Controll.ascx.cs"%>

-1

当您构建基本的asp.net网站时,使用WebControls是一个好主意,因为您希望能够在网站的多个位置使用控件。 将代码与布局ascx文件分离,将保存用于显示布局的控件,属于ascx文件的cs文件将保存填充这些控件的代码。

对于一些关于用户控件的基本理解,您可以尝试this网站


2
不,使用codebehind模型,您将获得aspx或ascx文件以及aspx.cs或ascx.cs(或aspx.vb和ascx.vb)。您可以拥有仅包含aspx(和aspx.cs)页面的站点,而没有任何ascx。 - Hans Kesting
3
看起来他把cx和cs搞混了。 - Shekhar_Pro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接