2009-06-18 3 views
2

Ich bin mit Inline-Code-Blöcke in asp.net herumspielen. Kann mir jemand sagen, warum der folgende Code nicht funktioniert?Schließen Sie eine Klasse in Inline-Code-Block in asp.net

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

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

bekomme ich folgende Fehlermeldung: CS1513:} erwartet

+0

Inline-Code-Blöcke sind meist für die Kompatibilität mit Classic ASP. Wenn es keinen besonderen Grund gibt, warum du mit ihnen spielst, würde ich vorschlagen, dass du sie überspringst und mit etwas Nützlichem spielst. –

+0

Meine Anforderungen verlangten nach einer schnellen Lösung, die eine ASPX-Datei mit Inline-Code perfekt behandelt. –

Antwort

3

Ich glaube, eine ganze Klasse schreiben zu können, müssen Sie es in einem Tag-Block

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

Sie‘platzieren habe die Response.Write dort außerhalb einer Funktion schweben.

Warum platzieren Sie diesen Code nicht in einem Skript-Tag:

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

Dann:

<%=TestClass.ShowMessage()%> 

Notiere die <%=expr%> speziell behandelt wird.

Viele halten dies für einen unreinen Ansatz. Sie könnten dies tun:

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

Ich mag das zweite Beispiel. Ich denke, es ist schön zu wissen. Vielen Dank. – Tarik

Verwandte Themen