1

次のように定義されたページがあります。

<%@ Page Language="C#" %>
<html>

<head>
<title>Untitled 1</title>
<script type="text/c#">
    public void WriteHello()
    {
        Response.Write("HELLO EVERYBODY");
    }
</script>
</head>
<body>
    <div>
        <% WriteHello(); %>
    </div>
</body>
</html>

しかし、これは次のコンパイルエラーをスローします:

「WriteHello」という名前は現在のコンテキストに存在しません

C# コードを別のファイルに移動してリンクすると、期待どおりに動作します。しかし、このためには、同じファイルに保存する必要があります。このようにインラインメソッドを呼び出すことはできませんか? それとも、非常に明白な何かが欠けていますか?

4

3 に答える 3

5

コード化したscriptタグはクライアント側のスクリプトで、ブラウザで実行しようとします。それを使用しようとするコードはサーバー上で実行されます。

スクリプトをサーバー側スクリプトに変更する必要があります。

<script runat="server">

これは次のように記述できます。

<%
    public void WriteHello()
    {
        Response.Write("HELLO EVERYBODY");
    }
%>

これは、他の場所で既に使用した構文です。

于 2011-09-14T11:50:14.960 に答える
1

あなたが行方不明です

<script runat=server type="text/c#"> 
于 2011-09-14T11:51:25.787 に答える
1

に変更する必要があります

<script type="text/c#" runat="server">

そうしないと、実行時にコードがコンパイルされません

于 2011-09-14T11:52:58.317 に答える