本节文档介绍如何使用 ASP.NET 移动控件设计窗体和 ASP.NET 移动 Web 窗体页。移动控件在 Microsoft .NET Framework 技术的基础上建立并扩展了这一技术。注意   如果您采用非英语的其他语言创作页面,请参见 Microsoft ASP.NET 文档中的开发全球通用应用程序的最佳做法。
创作工具
在开始创作 ASP.NET 移动 Web 应用程序前,必须确定要使用的工具。您可以使用 ASP.NET 移动设计器,它是作为 Microsoft Visual Studio .NET 开发环境的一部分提供的。或者,可以使用任何文本编辑器创建表示移动 Web 窗体页的 Active Server Page (.aspx) 文件。该设计器提供可视工具,用来创建移动 Web 窗体和用来加载新的移动 Web 窗体页的托管代码(代码隐藏文件)。服务器端应用程序
每一移动 Web 窗体页都包含至少一个由 <mobile:Form> 标记指示的移动窗体。每一移动控件标记都必须包括 runat=server 属性。在创建应用程序后,可以使用任何支持的浏览器和支持的设备查看它。有关更多信息,请参见支持的设备。客户端脚本
移动控件在服务器上运行。这些控件传输标记语言,告诉客户端浏览器如何在当前窗体或页中显示控件和内容。标记语言包含控件标识符。与其他类型的 Web 页类似,移动 Web 窗体页可以包含一些脚本,用于要处理的客户端浏览器。如果这些脚本引用特定的控件,则它们必须使用在标记语言中发出的标识符。这些标识符因设备支持的标记语言而异。若要获取控件的确切名称,请编译应用程序,浏览到页或窗体,并且查看其源标记语言。传统的“Hello World”
以下是移动控件内具有传统美誉的“Hello World”源代码示例。此示例说明如何使用 Form 控件作为包含“Hello, world!”文本的 Label 移动控件的容器。[c#]
<%@ 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”的国际版本。在此版本的以前示例中,脚本创建事件处理程序以读取选择文本,然后选择下一窗体。switch 语句处理 List 控件的翻译,然后在窗体之间切换。[c#]
<%@ 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">1</mobile:Label>
   <mobile:Link runat=server id="GoBack"       NavigateURL="#ListStuff">back</mobile:Link>
</mobile:Form>在多语言“Hello World”中只使用一种新的移动控件:即 List 控件。其 <Item> 元素提供文本的上下文。为国际应用程序更改文本编码
国际应用程序通常要求您更改字符编码,令其不是默认的 UTF-8 编码。若要更改文本编码,请使用前面示例中所示的 <globalization> 元素,它将编码设置为 UTF-16:[c#]
<globalization>
  requestEncoding="utf-16"
  responseEncoding="utf-16"
/>您既可以在全局 Machine.config 文件中设置编码,该文件为所有应用程序指定编码;也可以在应用程序的 Web.config 文件中设置编码,指定仅适用于该应用程序的编码。

解决方案 »

  1.   

    http://www.webasp.net/tech/download_show.asp?id=2038
    .NET移动网络开发指南电子版(原书售价99美元)
      

  2.   

    Mobile Internet TookitVS.net 2003里有, 和ASP.NET基本上没区别
      

  3.   

    对啊,VS.net有相对应的开发工具的Mobile Internet Tookit
      

  4.   

    我在看wml语法时,提到card
    但是我在vs.net->asp.net移动控件没有发现有mobile:card
    怎么回事?
      

  5.   

    就像aspx的web 开发中web控件自动被解释成html语言一样,wap开发中mobile:form生成时自动被解释成card
      

  6.   

    penning(我在身边) 有例子给看一下吗?!谢了
      

  7.   

    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
    <%@ Page language="c#" Codebehind="MobileWebForm1.aspx.cs" Inherits="mobile1.MobileWebForm1" AutoEventWireup="false" %>
    <HEAD>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="C#">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/Mobile/Page">
    </HEAD>
    <body Xmlns:mobile="http://schemas.microsoft.com/Mobile/WebForm">
    <mobile:form id="Form1" runat="server">
    <mobile:Label id="Label1" runat="server">业务定制</mobile:Label>
    <mobile:Command id="Command1" runat="server">业务一定制</mobile:Command>
    <mobile:Command id="Command2" runat="server">业务二定制</mobile:Command>
    </mobile:form>
    <mobile:form id="Form2" runat="server">
    <mobile:Label id="message" runat="server">Label</mobile:Label>
    </mobile:form>
    </body>
      

  8.   

    怎么在模拟器M3Gate里显示不了??
    还是一头雾水!