2010-11-21 31 views
22

これらは、aspxページのマークアップで意味されることを理解しています...しかし、私はそれらを使用することができ、特別な指示。<% %>(埋め込みコードブロック)

例:

iは、任意の入力を大幅

+4

をHTMLエンコードを除いて、私はあまりそれを使用を控えるだろう<%=と同じです。 HTML部分の代わりにコードをコードの中に置く方が、プレゼンテーションが簡単でデバッグが簡単です。 @ Lareauは同意した。 – Lareau

+0

私はちょうど彼らの柔軟性に興味がありました。 –

答えて

25

をこれらのコードブロックタグです。

そして、はい、あなたはこれらのタグにサーバーサイドコードをラップすることができます(C#の場合の例)

<% if (x = y) { 
    } else { 
    } 
%> 

OR

<% if (x = y) {%> 
    Write this HTML 
<% } else {%> 
    Write this html 
<% }%> 

が出てHTMLにSOMEVARを置くこの<%=SomeVar %>もあります

+0

非常に情報提供してくれてありがとうございました! –

-1
を理解されたい私が見たIFSまたはスイッチ

ような条件文を入れて、例えば

のデータセットからのデータを結合するためにそれらを使用することができ

はい、これらの記号は、サーバーに、これらのタグ内のコードをHTMLではなくコードとして解釈する必要があることを示しています。

他の質問に答えるには、サーバーでサポートされている条件文やその他のほとんどのプログラミング機能を使用できます。

ASPへのクイックガイドをご覧ください: http://www.w3schools.com/asp/default.asp

8

MSDNのドキュメントでは、embedded code blocks。コードビハインドファイルに置くことができるコードはかなりたくさん置くことができ、サーバーはブラウザにページを提供する前にコードを実行します。

Directiveは、ある特定の種類のコードブロックに与えられた名前です。最も一般的にはASP.NETページの上部に表示され、ASP.NETページに関するコンパイラ情報を提供します。それらは<%@%>で区切られています。

コードブロックの言語は、ディレクティブブロックで指定されているものと同じです。簡単な例:サーバーはASPXページの要求を受信すると

<%@ Page Language="C#" %> 
<!DOCTYPE html> 
<html> 
    <body> 
    <p><% string hello = "Hello world!"; Response.Write(hello); %></p> 
    <ol> 
    <% for (int i = 1; i <= 5; ++i) { %> 
     <li><% Response.Write("Item #" + i); %></li> 
    <% } %> 
    </ol> 
    </body> 
</html> 
+0

ご返信ありがとうございます。これは、さまざまな形式の埋め込みコードブロックのさらなる研究に役立ちます。 –

0

、それはPage(または任意の基底クラス指定)を継承し、メモリ内のクラスを生成します。継承されたクラスは、 "通常の"マークアップを静的なResponse.Write()呼び出し、<%...%>相当のコードに変換し、<%= someExpression %>Response.Write(someExpression)に変換します。前のコードブロックでは、有効なC#(またはVB)を受け入れる必要があります。後者の場合、組み込みコードは単一の式でなければなりません(変数に割り当てることができるもの)。

39

Hereor here - in case it moves again)は、以前はすべての異なるインラインサーバーサイドタグをリストしていました例。

  • <%=...%>は、データバインディング式の
  • <%$...%>リターン式の値を用いている
  • <%#...%> Response.Writeを()と等価である

    1. <%...%>実行通常のコード、および使用することができるが7であります(注:式はコードではありません。hereを参照してください)
    2. <%@...%>は、通常、ASPXファイルの先頭にあります。
    3. <%--...--%>コメントを
    4. <%:...%>はあなたがAsp.net Webフォームをしている場合、それは価値
  • +6

    そのリンクは死んでいるようですが、[この回答](http://stackoverflow.com/a/3812341/761771)の[MSDN記事](https://support.microsoft.com/en-us/kb/976112)かなり良いです。 – Nate

    +1

    不幸なことに、MSDNの記事には、イントロで「<%@ ... %>」というメッセージが2回掲載されていますが、私が探していたサーバーのタグ「<%: ... %>」の情報はありません... チェックアウトする別のリンクです:https://weblogs.asp.net/ahmedmoosa/embedded-code-and-inline-server-tags – Adam