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

时间:2011-09-14 11:48:31

标签: 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>

但这会引发编译错误:

  

当前上下文中不存在名称“WriteHello”

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

3 个答案:

答案 0 :(得分:5)

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

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

<script runat="server">

您可以将其写为:

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

您在其他地方使用的语法是什么。

答案 1 :(得分:1)

你错过了

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

答案 2 :(得分:1)

您需要将其更改为

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

否则您的代码将无法在运行时编译