2009-06-18 7 views
2

私はasp.netでインラインコードブロックで遊んだのインラインコードブロック内のクラスを含めます。誰かが次のコードがうまくいかない理由を教えてもらえますか?はasp.net

<%@ Language="C#" %> 
<% 
    Response.Write(TestClass.ShowMessage()); 

    public class TestClass 
    { 
     public static string ShowMessage() 
     { 
      return "This worked!!"; 
     } 
    } 
%> 

私は、次のエラーメッセージが出ます:CS1513は:}私は「あなたが

<script runat="server" language="C#"> 
//Put your class here 
</script> 
+0

インラインコードブロックは、ほとんどが従来のASPとの互換性のためのものです。特別な理由がない場合は、スキップしてより便利なものを試してみることをおすすめします。 –

+0

私の要件では、インラインコードの.aspxファイルが完全に処理されるという迅速な解決が求められていました。 –

答えて

3

を期待しました機能の外側にResponse.Writeが浮かんでいます。

は、なぜあなたは、scriptタグで、このコードを配置していない。そして、

<script runat="Server"> 
    public class TestClass 
    { 
     public static string ShowMessage() 
     { 
      return "This worked!!"; 
     } 
    } 
</script> 

<%=TestClass.ShowMessage()%> 

<%=expr%>が特別に処理されます。

多くは、これは不純なアプローチであると考えています。

<script runat="Server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     litMessage = TestClass.ShowMessage(); 
    } 
</script> 
<asp:literal id="litMessage" runat="server" /> 
4

タグブロックの内部であなたをそれを配置する必要がクラス全体を記述することができると思い

+0

私は2番目の例のようなものです。私はそれが知っていいと思う。ありがとう。 – Tarik