欢迎您来到中国万网客户服务中心!
客服导航
如果您在使用我们的产品中遇到问题,建议您首先在“常见问题”中查询解决方法;
如果没有找到该问题的解决方法,您可以在“问题搜索”中进行搜索;
如果搜索后没有找到满意答案,您可以“在线提问”,我们会在1个工作日内给您答复。
您现在的位置: 中国万网客服中心 >> 常见问题 >> 软件常见问题 >> ASP.NET程序模板 >> 文章正文

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]);
%>
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();
    %>
    
    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();
    %>
    
    C# VB JScript  

本节小结

  1. 除了三处例外,ASP.NET 与传统的 ASP 在 API 方面完全兼容。API 的变化是:Request()Request.QueryString()Request.Form() 现在都返回个别的字符串而不是字符串数组。
  2. ASP.NET 页仅支持单语言。
  3. ASP.NET 页函数必须在 <script runat=server> 块中声明。
  4. 不支持页呈现函数。

返回上一页
中国万网旗下网站:中国万网 买麦网
Copyright © 2007 中国万网 版权所有
推荐使用1024×768分辨率浏览,并关闭窗口弹出阻止程序