0

「Person」クラスを表示したいとしましょう。
私は2つの方法でそれを行うことができます:

  1. HTML にいくつかの asp:labels を配置し、それらをサーバー コードに入力します。

    lblName.Text = person1.Name 
    lblAge.Text = person1.Age 
    
  2. asp:formView コントロールを使用すると、サーバー コードは次のようになります。

    Dim myDataSource = New Object() {person1}
    FormView1.DataSource = myDataSource
    FormView1.DataBind()
    

    私のhtmlは次のようになります。

    <asp:FormView ID="FormView1" runat="server">
        <ItemTemplate>
            Name:<%# Eval("Name")%>
            <br />
            Age:<%# Eval("Age")%>
        </ItemTemplate>
    </asp:FormView>
    

どの方法が良いですか?サーバータグを使用するコストはいくらですか?

4

1 に答える 1

0

runat="server"コントロールが必要であり、サーバー側からコントロールに値を割り当てるため、同じです。

主な違いは、code_behind ファイルまたはマークアップ ファイルで値を割り当てることです。お好きな場所で。どちらの場合も、サーバー側でその値を収集する必要があります。

サーバータグはページのレンダリングフェーズで処理されるため、コードファイルに値を割り当てるためにサーバータグを使用するコストは変わらないと思います。

msdn から抽出:

ASP.NET Web ページにコードを追加するための既定のモデルは、コード ビハインド クラス ファイル (コード ビハインド ページ) を作成するか、属性 runat="server" (a単一ファイル ページ)。通常、作成するコードは、ページ上のコントロールと対話します。たとえば、コントロールの Text (またはその他の) プロパティを設定することにより、コードからページに情報を表示できます。もう 1 つの可能性は、埋め込みコード ブロックを使用してコードをページに直接埋め込むことです。埋め込みコード ブロック 埋め込みコード ブロックは、ページのレンダリング フェーズ中に実行されるサーバー コードです。ブロック内のコードは、プログラミング ステートメントを実行し、現在のページ クラスの関数を呼び出すことができます。

埋め込みコード ブロックの用途 埋め込みコード ブロックは、主に古い ASP テクノロジとの下位互換性を維持するために、ASP.NET Web ページでサポートされています。一般に、複雑なプログラミング ロジックに埋め込みコード ブロックを使用することは、ベスト プラクティスではありません。コードがページ上でマークアップと混在している場合、デバッグと保守が困難になる可能性があるためです。さらに、コードはページのレンダリング フェーズ中にのみ実行されるため、ページ処理の適切な段階にコードを適用する際のコード ビハインドまたはスクリプト ブロック コードよりも柔軟性が大幅に低下します。埋め込みコード ブロックの用途には次のようなものがあります。 前の例に示すように、コントロールまたはマークアップ要素の値を関数によって返される値に設定します。計算をマークアップまたはコントロール プロパティに直接埋め込む。

于 2013-10-17T06:27:06.187 に答える