我注意到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?
...然而......問題仍然表現出來。
你可以有多個,但他們不能嵌套。請注意,服務器表單標記會生成客戶端表單標記,因此您不能在服務器表單標記內放置任何客戶端表單標記。 –