如果在页面中声明,则方法不存在

ano*_*ery 1 c# asp.net inline-code

我有一个页面定义为:

<%@ 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>
Run Code Online (Sandbox Code Playgroud)

但这会引发编译错误:

"WriteHello"这个名称在当前上下文中不存在

如果我将C#代码移动到一个单独的文件,并链接到它,它按预期工作.但为此,我需要将它保存在同一个文件中.你不能这样调用内联方法吗?还是我错过了一些非常明显的东西?

Ode*_*ded 5

script您编码的标记是客户端脚本 - 它将尝试在浏览器上执行.尝试使用它的代码在服务器上运行.

您需要将脚本更改为服务器端脚本:

<script runat="server">
Run Code Online (Sandbox Code Playgroud)

你可以这样写:

<%
    public void WriteHello()
    {
        Response.Write("HELLO EVERYBODY");
    }
%>
Run Code Online (Sandbox Code Playgroud)

您在其他地方使用的语法是哪种.