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 回答