我注意到C#中一个奇怪的问题,它一直在困扰我的头几个星期,所以我想我只是把这个问题放在那里。所以我的问题基本上是如何处理多个客户<form>
的服务器内部形式<form runat="server">
?我一直在写一个网站,我遇到了一个很奇怪的问题。C#在<form runat =“server”>中有多个客户端表单></form>?
所以这里是重新创建这个问题的基本故障。
1)有一个简单的JavaScript方法,里面有一个警报,如果它被调用会触发。
eg: function tester() {
alert("adf");
}
2)打开在视觉工作室2010年一个全新的Web窗体项目(它应该有一个<form runat="server">
已经创建里面给你的。)
eg: <form runat="server"> <form/>
You can only have one of these.
3)现在这种形式的标签内,写一个空的表单标签,理论上什么也不做:
eg: <form action=""><form/>
4)现在在调用javascript方法的这个表单后立即创建另一个表单。
eg: <form action="javascript:tester()" >
<button type="submit" >Search</button>
</form>
5)现在运行此代码,并且在按下按钮后应该会看到警报弹出。
6)现在拿出空的表单标签: 删除:再次<form action=""><form/>
7)运行的代码,而现在你会发现,你的JavaScript调用不烧了,它宁可刷新页面每次按下按钮。
所以这是我一直在困扰着我的问题,我希望有些大师很快能为我解答,因为这已经困扰了我很长一段时间。我不知道它为什么可以用两种形式工作,为什么它只用一种形式。希望有人能尽快回答。非常感谢!
一些有用的信息:
根据这一页,我可以有多个“客户”基于表单的标签,并且不应该是一个问题...
Why you can't have a page with multiple server-side Form tags?
...然而......问题仍然表现出来。
你可以有多个,但他们不能嵌套。请注意,服务器表单标记会生成客户端表单标记,因此您不能在服务器表单标记内放置任何客户端表单标记。 –