ASP.NET 移动网页介绍

更新:2007 年 11 月

本节文档介绍如何使用 ASP.NET 移动控件设计 ASP.NET 移动网页。移动控件在 Microsoft .NET Framework 技术的基础上建立并扩展了这一技术。

说明:

如果您采用英语之外的语言创作页面,请参见 Microsoft ASP.NET 文档中的开发全球通用应用程序的最佳做法

创作工具

若要创建 ASP.NET 移动网页,可以使用 Microsoft Visual Studio 或文本编辑器。Visual Studio 提供用来创建移动网页及其代码的工具,以及用来管理包含移动网页的应用程序的工具。

创建了移动页之后,您可以在受支持的设备上使用浏览器查看它们。有关更多信息,请参见.NET Compact Framework 支持的设备和平台

服务器端应用程序

移动控件在服务器上运行。这些控件将标记语言发送到浏览器;标记指定如何在当前窗体或页中显示控件和内容。

每个移动网页包含至少一个窗体元素,该元素由 <mobile:Form> 标记指示。每一移动控件标记都必须包括 runat=server 属性。

客户端脚本

与其他类型的网页类似,移动网页可以包含供浏览器处理的客户端脚本。如果这些脚本引用特定的 Web 服务器控件,则它们必须使用在标记语言中发出的标识符。这些标识符因设备支持的标记语言而异。若要获取控件的确切名称,请编译应用程序,浏览到页或窗体,并且查看其源标记。

传统的“Hello World”示例

下面的代码示例演示“Hello World”移动网页。此示例演示如何使用 Form 控件作为显示“Hello, world!”文本的 Label 移动控件的容器。

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" 
   Language="C#" %>
<mobile:Form id=Form1 runat="server">
  <mobile:Label id=Label1 runat="server">
    Hello, world!
  </mobile:Label>
</mobile:Form>

国际性的“Hello World”示例

移动社区是全球性的。下面的代码示例演示“Hello World”的国际版本。在前面示例的此变体中,List 控件显示各个 <Item> 元素中定义的语言的列表。事件处理程序读取由用户选择的语言,然后切换到另一个窗体。switch 语句用来为用户选择的语言显示正确的文本。

<%@ Page Language="C#" 
    Inherits="System.Web.UI.MobileControls.MobilePage" %>

<script runat="server">
public void MyEventHandler(Object source, ListCommandEventArgs e)
{
    Selection.Text = "You selected " + e.ListItem.Text;
    ActiveForm = SecondForm;

    switch (e.ListItem.Text)
    {
      case "French":
          Selection.Text = "Bonjour le monde";
          break;

      case "German":
          Selection.Text = "Hallo Welt";
          break;

      case "Italian":
          Selection.Text = "Ciao il mondo";
          break;

      case "Norwegian":
          Selection.Text = "Hei verden";
          break;

      case "Portuguese":
          Selection.Text = "Oi mundo";
          break;

      default:
          Selection.Text = "Hello World";
          break;
   }
}
</script>
<mobile:Form id="ListStuff" runat="server" 
      BackColor="White" ForeColor="#bb7023">
  <mobile:Label runat=server id="label">
    Pick a Language!
  </mobile:Label>
  <mobile:List runat=server id="ListMe" 
      OnItemCommand="MyEventHandler">
    <item Text="English" />
    <item Text="French" />
    <item Text="German" />
    <item Text="Italian" />
    <item Text="Norwegian" />
    <item Text="Portuguese" /> 
  </mobile:List>
</mobile:Form>

<mobile:Form id="SecondForm" runat="server"
    BackColor="White" ForeColor="Green">
  <mobile:Label runat=server>
     Your "Hello World"  Translation
  </mobile:Label>
  <mobile:Label runat=server 
    id="Selection"></mobile:Label>
  <mobile:Link runat=server id="GoBack" 
    NavigateURL="#ListStuff">back</mobile:Link>
</mobile:Form>

为国际应用程序更改文本编码

国际应用程序通常要求您更改字符编码,令其不是默认的 UTF-8 编码。若要更改文本编码,请使用前面示例中所示的 globalization 元素,它将编码设置为 UTF-16:

<globalization>
  requestEncoding="utf-16"
  responseEncoding="utf-16"
/>

您既可以在全局 Machine.config 文件中设置编码,该文件为所有应用程序指定编码;也可以在应用程序的 Web.config 文件中设置编码,指定仅适用于该应用程序的编码。

请参见

概念

开发全球通用应用程序的最佳做法

.NET Compact Framework 支持的设备和平台

参考

Form

Label

<Item> 元素

其他资源

开发 ASP.NET 移动网页