Blocos de código no ASP.NET
O modelo de arquivo único página ASP.NET é semelhante a estrutura de página Active Server Pages (ASP) em que blocos de script que contêm código vêm antes do HTML, e marcas especiais podem ser usadas no HTML.Este tópico descreve os problemas envolvidos na atualização de seu código ASP para ASP.NET.
O modelo de página code-behind do ASP.NET separa o código script-block das marcas de HTML e ASP.NET.Para obter mais informações, consulte Visão geral da sintaxe de página da Web ASP.NET.Para obter informações sobre a sintaxe de ligação de dados que permite que você vincule os valores de propriedade de um controle a dados, consulte Visão geral de expressões de ligação de dados.
Declarando Variáveis e Procedimentos
Todos os procedimentos do ASP.NET e variáveis global devem ser declaradas dentro de <script > blocos colocados antes da abertura <html>marca, não entre ASP < %... estilo %> delimitadores.Você ainda pode declarar variáveis em < %...Processar %> blocos, mas eles estarão acessíveis apenas para outros blocos de renderização da página, não globalmente para outras funções ou procedimentos.Uma página pode conter mais de um bloco script, mas o linguagem de programação deve ser a mesma em todos os blocos em uma página.
O seguinte exemplo de código é uma página ASP.NET que declara as variáveis e procedimentos em um script e bloco de processamento.Se você passar um cadeia de caracteres da consulta para o página ASP.NET em uma URL, a cadeia de caracteres da consulta será exibida na página.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script >
' The following variables are visible to all procedures
' within the <script> block.
Dim str As String
Dim i, i2 As Integer
Function DoubleIt(ByVal inpt As Integer) As Integer
' The following variable is visible only within
' the DoubleIt procedure.
Dim factor As Integer = 2
DoubleIt = inpt * factor
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" >
<title>Untitled Page</title>
</head>
<body>
<form id="form1" >
<div>
<%
' The following local variable is visible only within this
' and other render blocks on the page.
Dim myVar
myVar = Request.QueryString
Response.Write("The querystring is " _
& Server.HtmlEncode(myVar.ToString()))
%>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script >
// The following variables are visible to all procedures
// within the <script> block.
String str;
int i;
int i2;
int DoubleIt(int inpt)
{
// The following variable is visible only within
// the DoubleIt procedure.
int factor = 2;
return inpt * factor;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>Untitled Page</title>
</head>
<body>
<form id="form1" >
<div>
<%
// The following local variable is visible only within this
// and other render blocks on the page.
object myVar;
myVar = Request.QueryString;
Response.Write("The querystring is " +
Server.HtmlEncode(myVar.ToString()));
%>
</div>
</form>
</body>
</html>
Processamento de texto
Processar funções não são suportadas no ASP.NET.Usando versões antigas do ASP, você pode inserir HTML literal no corpo de um procedimento, sistema autônomo neste exemplo de código a seguir.
<% Sub SomeProcedure() %>
<H3> Render this line of bold text. </H3>
<% End Sub %>
Esse código geraria um erro em um página ASP.NET.Para o ASP.NET, você teria que escrever o código da seguinte maneira.
<script runat=server>
Sub SomeProcedure()
Response.Write("<H3> Render this line in bold text.</H3>")
End Sub
</script>
Todo o código que está incluído nas marcas <script>…</script>, exceto declarações de variáveis globais, deve ser encapsulado em procedimentos.
Processamento, Carregamento e Descarregamento de Página
Com o ASP, o código foi incluído dentro de < %...%> Rótulos e o processamento da página começaram com a primeira demonstrativo após a primeira marca < % >.Com o ASP.NET, qualquer código que é para ser processado assim que a página for carregada deve ser incluído no evento intrínseco Page_Load.Você ainda pode escrever código < %...%> blocos, mas ele será executado na renderização de time (na parte superior - para baixo de forma, sistema autônomo em ASP) depois que a página é carregada.Se você precisar executar o código de inicialização, ele deve aparecer no evento Page_Load, que é gerado imediatamente após a página é carregada pelo mecanismo ASP.NET, como mostrado na exemplo de código a seguir.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script >
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Place all startup code here, including initialization of
' variables, preloading of controls, and loading of
' data from a database.
If Page.IsPostBack Then
Response.Write("<br />Page has been posted back.")
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>Untitled Page</title>
</head>
<body>
<form id="form1" >
<div>
Hello.<br />
<asp:Button ID="Button1"
Text="Click to Post Back" />
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script >
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Response.Write("<br />Page has been posted back.");
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" >
<title>Untitled Page</title>
</head>
<body>
<form id="form1" >
<div>
Hello.<br />
<asp:Button ID="Button1"
Text="Click to Post Back" />
</div>
</form>
</body>
</html>
Um evento intrínseco Page_Unload relacionado é sempre o último evento a ser gerado durante o ciclo de vida da execução da página e pode ser usado para executar qualquer código de limpeza da página.
Para obter mais informações, consulte Visão Geral do Ciclo de Vida da Página ASP.NET e Modelo de Eventos de Controle do Servidor Web ASP.NET.
Consulte também
Conceitos
Visão geral sobre classes de páginas ASP.NET
Modelo de código de página Web do ASP.NET
Script de Cliente em Páginas da Web ASP.NET
Visão geral da sintaxe de página da Web ASP.NET
Visão Geral do Ciclo de Vida da Página ASP.NET
Modelo de Eventos de Controle do Servidor Web ASP.NET