1

"runat=server" 属性を持つコントロールと html コンポーネントの違いを教えてください。それを使用するためのベストプラクティスは何ですか? ありがとう。

4

2 に答える 2

1
<span runat="server" id="myspan"> </span> 

System.Web.UI.HtmlControls で定義されているGenericControlクラスにマップされます。msdnの説明から:

System.Web.UI.HtmlControls 名前空間には、Web フォーム ページで HTML サーバー コントロールを作成できるクラスが含まれています。HTML サーバー コントロールはサーバー上で実行され、ほとんどのブラウザーでサポートされている標準の HTML タグに直接マップされます。これにより、Web フォーム ページの HTML 要素をプログラムで制御できます。

<asp:Label runat="server" id="asplabel"></asp:Label> 

System.Web.UI.WebControlsのLabelクラスにマップされます。msdnの説明から

System.Web.UI.WebControls 名前空間には、Web ページ上に Web サーバー コントロールを作成できるクラスが含まれています。Web サーバー コントロールはサーバー上で実行され、ボタンやテキスト ボックスなどのフォーム コントロールが含まれます。また、カレンダーなどの特別な目的のコントロールも含まれています。Web サーバー コントロールはサーバー上で実行されるため、これらの要素をプログラムで制御できます。Web サーバー コントロールは HTML として表示されますが、それらのオブジェクト モデルは必ずしも HTML 構文を反映しているわけではありません。

System.Web.UI.WebControls 名前空間には、TextBox コントロールや ListBox コントロールなど、HTML タグとして表示されるクラスが含まれています。名前空間には、SqlDataSource クラスや ObjectDataSource クラスなど、Web ページには表示されないがデータ操作をサポートするクラスも含まれています。GridView コントロールや DetailsView コントロールなどの他のコントロールは、データの表示と編集をサポートします。WebControl クラスは、System.Web.UI.WebControls 名前空間の多くのクラスの基本クラスとして機能します。

基本的に、WebControl 名前空間のコントロールは、設計の目的が VB6 フォームを可能な限り模倣して、winclient と webclient プログラミングの間の移行 (前後) をシームレスに行うことを目的とした、より多くの機能を提供します。

個人的には、可能な限り WebControls 名前空間のコントロールを使用する傾向があり、WebControl では利用できず、オーバーライドできない動作が必要な場合にのみ、HtmlConttols にフォールバックします。

同じトピックに関する K. スコット アレンのブログ

于 2013-07-27T07:55:55.473 に答える
0

サーバー コントロールは、サーバーが認識するタグです。

サーバー コントロールには次の 3 種類があります。 HTML サーバー コントロール - 従来の HTML タグ Web サーバー コントロール - 新しい ASP.NET タグ 検証 サーバー コントロール - 入力検証用

HTML サーバー コントロール:

ASP.NET ファイルの HTML 要素は、既定ではテキストとして扱われます。これらの要素をプログラム可能にするには、runat="server" 属性を HTML 要素に追加します。

例:

<form runat="server">
......
</form>

Web サーバー コントロール:

Web サーバー コントロールは、サーバーが認識する特殊な ASP.NET タグです。

HTML サーバー コントロールと同様に、Web サーバー コントロールもサーバー上に作成され、機能するには runat="server" 属性が必要です。ただし、Web サーバー コントロールは必ずしも既存の HTML 要素にマップされるとは限らず、より複雑な要素を表す場合もあります。

例:

<asp:Button ID="but" runat="server"/>

検証サーバー コントロール:

検証サーバー コントロールは、ユーザー入力の検証に使用されます。ユーザー入力が検証に合格しない場合、ユーザーにエラー メッセージが表示されます。

例:

<asp:RequiredFieldValidator ID="req1" runat="server" ControlToValidator="TextBox1" ErrorMessage="please enter proper details"/>
于 2015-08-27T10:16:22.657 に答える