ASP.NET的移植语法和语义

2013 年 1 月 10 日4270

ASP-ASP.NET的移植语法和语义

作者:客服中心文章来源:本站原创点击数:更新时间:2006-2-24

语法和语义

ASP.NET 与传统的 ASP 在 API 方面完全兼容,但有以下三处不同:

Request():ASP 返回字符串数组;ASP.NET 返回字符串。

Request.QueryString():ASP 返回字符串数组;ASP.NET 返回字符串。

Request.Form():ASP 返回字符串数组;ASP.NET 返回字符串。

在 ASP 中,RequestRequest.QueryStringRequest.Form 集合从查找返回字符串数组。例如,在传统的 ASP 中,按如下所示访问从请求到 http://localhost/test/Test.asp?values=45&values=600 的查询字符串值:

<%

' Below line outputs: "45, 600"

Response.Write Request.QueryString("values")

' Below line outputs: "45"

Response.Write Request.QueryString("values")(1)

%>

在 ASP.NET 中,这些集合需要显式方法来获取数组访问。这些数组现在也是从 0 开始索引。例如,在 ASP.NET 中,按如下所示访问从请求到 http://localhost/test/Test.aspx?values=45&values=600 的查询字符串值:

<%

// Below line outputs: "45, 600"

Response.Write(Request.QueryString["values"]);

// Below line outputs: "45"

Response.Write(Request.QueryString.GetValues("values")[0]);

%>

<%

' Below line outputs: "45, 600"

Response.Write(Request.QueryString("values"))

' Below line outputs: "45"

Response.Write(Request.QueryString.GetValues("values")(0))

%>

<%

// Below line outputs: "45, 600"

Response.Write(Request.QueryString["values"]);

// Below line outputs: "45"

Response.Write(Request.QueryString.GetValues("values")[0]);

%>

C#

VB

JScript

这些数组最常用于从多项选择列表框 (<select multiple>) 传递窗体值或多个复选框具有相同名称的情况。

ASP.NET 和 ASP 之间的语义差异
ASP.NET 页与现有的 ASP 页相比还有几处语义变化。下列问题最有可能影响您:

ASP.NET 页仅支持单语言。

ASP 允许在单页上使用多种语言,这对脚本库方案有用。由于 ASP.NET 的已编译特性,它在一页上仅支持单语言。然而,在单个应用程序内仍然可以有多个使用不同语言的页。用户控件还可以具有不同于包含它们的页所使用的语言。这使您能够在单页内集成用不同语言编写的功能。这足以替代传统 ASP 应用程序中普遍使用的多语言包含文件。

ASP.NET 页函数必须在 <script runat=server> 块中声明。

在 ASP 中,页函数可以在 <% %> 块中声明:

<%

Sub DoSomething()

Response.Write "Hello World!"

End Sub

DoSomething

%>

在 ASP.NET 中,页函数必须在 <script runat=server> 块中声明:

<script language="C#" runat=server>

void DoSomething() {

Response.Write("Hello World!");

}

</script>

<%

DoSomething();

%>

<script language="VB" runat=server>

Sub DoSomething()

Response.Write ("Hello World!")

End Sub

</script>

<%

DoSomething()

%>

<script language="JScript" runat=server>

function DoSomething() : void {

Response.Write("Hello World!");

}

</script>

<%

DoSomething();

%>

C#

VB

JScript

ASP.NET 不支持页呈现函数。

在 ASP 中,可以用 <% %> 块声明页呈现函数:

<% Sub RenderSomething() %>

<font color="red"> Here is the time: <%=Now %> </font>

<% End Sub %>

<%

RenderSomething

RenderSomething

%>

在 ASP.NET 中,这必须重写:

<script language="C#" runat=server>

void RenderSomething() {

Response.Write("<font color=red> ");

Response.Write("Here is the time: " + DateTime.Now);

}

</script>

<%

RenderSomething();

RenderSomething();

%>

<script language="VB" runat=server>

Sub RenderSomething()

Response.Write("<font color=red> ")

Response.Write("Here is the time: " & Now)

End Sub

</script>

<%

RenderSomething()

RenderSomething()

%>

<script language="JScript" runat=server>

function RenderSomething() : void {

Response.Write("<font color=red> ");

Response.Write("Here is the time: " + DateTime.Now);

}

</script>

<%

RenderSomething();

RenderSomething();

%>

C#

VB

JScript

本节小结

    除了三处例外,ASP.NET 与传统的 ASP 在 API 方面完全兼容。API 的变化是:Request()Request.QueryString()Request.Form() 现在都返回个别的字符串而不是字符串数组。

    ASP.NET 页仅支持单语言。

    ASP.NET 页函数必须在 <script runat=server> 块中声明。

    不支持页呈现函数。

提交成功!

感谢您对万网服务的支持!

仍存在问题?不用担心

您可以点击

或寻求人工帮助 400-600-8500

上一个文章: 介绍XMLWeb服务

下一个文章: web窗体使用服务器控件

相关文章:
ASP.NET中提供的页面重定向实现方式
asp.net生成静态页
Asp.net关于对url编码的转化
asp.net语言特色
如何利用ASP.NET技术动态生成HTML页面
C#定义常量的两种方法
VC#2005快速入门使用while语句
ASP.NET2.0的缓存技术简介
0 0