2009-07-06 9 views
1

私は考えています。ASP.NETでの単純なHTML構築ですか?

私はASP.NETアプリケーションにタグを入れたいと思っています。メンテナンスを依頼されていますので、初心者の視点からこれを見ていきます。エッジをたくさん知らなくても。

私はウェブページにいくつかの出力を書き込むにはどうすればよい...ので、私は、メモリ上で実行しています、バック1998年

を古いASPアプリケーションを書きましたか?

私は

<asp:label id="blah"> 

を使用することができます知っているが、その後、私はラベル何とかを定義する必要があります。私のコードの背後にあり、それを割り当てます。

私はその場で置くことができると信じています:

<% Response.Write("sometext"); %> 

、それはページ内の場所にsometextを書き込みます。 (私は正しいですか?)

最後に、私はそこに構文が

<%= "some string" %> 

の効果にだったが、私はunadvised、それは推奨されませんどちらかと言って、その上でドキュメントを見つけることができない、または覚えていますそのような決定の根拠。

私は「ASP.NET文法」についてグーグルで試してみましたが、「<%=」という優れた説明も見つからず、いくつかのブログにも記載されています。

グローバルバージョン番号や現在の日付を挿入するのと同じように、インプレイスコンポジションに特に問題があるとは限りません.15個のラベルを定義して、それらをすべて初期化する必要がありますおそらくasp:ラベルのアプローチは、ラベルのグローバルインスタンスを参照することができますか?

ちょうど良いプラクティスに関する意見を求めて:)

+1

http://msdn.microsoft.com/en-us/asp.net/default.aspxを参照してください。また、(「ASP.NETページの構文」http://msdn.microsoft.com/en-us/library/fy30at8h.aspx)。提案:Google for MSのドキュメントには触れないでください。 –

答えて

4

<%= string %>は完全に有効なASP.NET構文です。あなたがしばしばそれを使用して問題を参照する理由は、<%#(データバインディング用)を使用する必要があるとき、またはその逆のときに人々の使用(Response.Writeに相当)です。これは(

  • MSDN entry on <%=

    <%= SiteContext.Current.GetSetting("SiteTitle") %> 
    

    MSDN:

    たとえば、私たちは、コンテンツ管理、我々はグローバル設定リポジトリから値を引くサイト、非常に広範囲にそれを使用しますJScript.NETセクションの下にありますが、まだ適用されます)

  • MSDN entry on <%#

他の人は、<%=が「ベストプラクティス」または非常に良いアプローチではないと示唆していますが、私はその感想に強く同意します。MVC-ishタイプのサイト(、特に)は、最も直接的な方法がサーバーコントロールを使用するより効果的です。

+0

また、MSDNのエントリのための多くの感謝、私は約5分を検索したが、それを見つけることができませんでした:) –

0

< %%>構文の用語「レンダリングブロック」を参照してください。

<asp:Literal id="z" text="goofy" runat="server" />? 

ラベルを使用することについて、通常のフォームで使用されている方法。

+0

google用語 "レンダリングブロック"に感謝 - 私が探していたものにまっすぐ。 –

1

多くのオプションがあります。単一のラベルを使用して、その場所に表示するすべてのデータを文字列で連結することができます。

必要なレイアウトでユーザーコントロールを作成し、そのように値を割り当てることができます。

あなたは、(それはdiv要素だ)の後ろに、あなたのコード内でHtmlGenericControlを作成し、それにいくつかのテキストを追加し、に注入可能性のResponse.Writeまたは<% =%>構文

で直接注入できページはコレクションを制御します。

何を選んでも、コードページの既存のスタイルを試してみてください。

+0

+1ページの既存のスタイルに固執する –

-1

<asp:label />(コンテンツ内の一部のHTMLをカスタマイズする場合はリテラルコントロール)を使用してください。真剣に。それほど難しいことではありません。マークアップにラベルを付けると、ビジュアルスタジオはコードビハインドでそれを作成しますので、特別な作業は必要ありません。

Webフォームで<%= "some string" %>の構文を使用することはできますが、それをaspコントロールと混在させると問題が生じる可能性があります。新しいフレームワークがマークアップのようなミキシングロジックから離れた理由があります。 <asp:Literal />がそれに渡された文字列に無関係なHTMLを追加していないのに対し、

3

はちょうどあなたが<asp:Label />を使用する場合、それは<span>タグ内.Textをレンダリングすることに留意します。
たとえば、コンテンツ管理システムを構築していてユーザー主導のHTMLを表示する場合、LabelコントロールはWYSIWYGタイプのリッチテキストボックスからの出力を正しく表示しませんが、Literalコントロールは適切な選択です。

<%= %>は、リテラルの.Textプロパティの後半に相当します。ここでの唯一の違いは、ページライフサイクルの過程で値がページに配置されるとき(明示的な構文と懸念のパラダイムの分離を除いて)です。 .Textプロパティは、WebControlから継承されたコントロールの上にあるので

、それが設定することができます/読み込み/コントロールのLoadイベント次のイベント(どこ/ページ内のコントロールを読み込むたび)のいずれかの間に操作するが、<%= %>他のコントロールを参照することなく(コードを含むdivのInnerHtmlプロパティのように)コードビハインドによってテキストを直接読み込み/使用/操作することはできません。

0

ページやコントロールのレンダリングを完全に制御し、必要なものを作成することもできます。 HTML、コントロールのレンダリングの順序などを制御します。

関連する問題