我的页面定义为:
<%@ 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#代码移动到单独的文件并链接到它,它会按预期工作。但为此,我需要将它保存在同一个文件中。你不能这样调用内联方法吗?或者我错过了一些非常明显的东西?
答案 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">
否则您的代码将无法在运行时编译