Asp.net 正文行文=";服务器";导致编译错误
在母版页中,我有以下标记Asp.net 正文行文=";服务器";导致编译错误,asp.net,Asp.net,在母版页中,我有以下标记 <body id="body" runat="server"> 然而,这给了我一个编译错误,消息是“无法解析符号someJavaScriptFunction();”。如果我运行应用程序,我会得到一个错误,告诉我 Compiler Error Message: CS1026: ) expected 应为编译器错误消息:CS1026:) 这是怎么回事onload是一个客户端事件,那么为什么ASP.NET编译器会关心这个问题呢?您需要将它添加到代码隐藏中 pro
<body id="body" runat="server">
然而,这给了我一个编译错误,消息是“无法解析符号someJavaScriptFunction();”。如果我运行应用程序,我会得到一个错误,告诉我
Compiler Error Message: CS1026: ) expected
应为编译器错误消息:CS1026:)
这是怎么回事
onload
是一个客户端事件,那么为什么ASP.NET编译器会关心这个问题呢?您需要将它添加到代码隐藏中
protected void Page_Load(object sender, EventArgs e)
{
body.Attributes.Add("onload", "someJavaScriptFunction();");
}
将
runat=“server”
添加到标记会使其成为服务器标记,即使它不是一个明确的前缀标记(例如
)。在服务器标记上,任何onXXXX
事件处理程序都处理服务器端事件,而不是客户端事件(明确调用“客户端”时除外,例如使用OnClientClick for buttons)。它也是一个选项,用于设置:
<head>
<script language="text/javascript">
window.onload = function() { someJavaScriptFunction(); }
</script>
</head>
window.onload=function(){someJavaScriptFunction();}
发生这种情况是因为ASP试图将body标记内的脚本解释为页面中代码的一部分。就像它是C#/VB…好的,我可以看到它是如何工作的-但是为什么添加runat=“server”意味着我需要使用这种方法呢?我想因为它在代码后面寻找Body\u SomeJavaScriptFunction方法,因为你告诉它“在服务器上运行”?正确。。。我附上了你的答案伊恩,希望你不介意:)没问题。这一天我已经达到了200个代表点,所以我想我最好继续做一些工作:)这并不能回答“这里发生了什么?”和“ASP.NET编译器为什么关心这个”的问题。在我的场景中,这是我最后采用的方法。
<head>
<script language="text/javascript">
window.onload = function() { someJavaScriptFunction(); }
</script>
</head>