वर्तमान पृष्ठ के HTML को कैप्चर करने के लिए server.execute का उपयोग करते समय निम्न कोड अनंत लूप में फंस जाता है।

डीबग पर

Server.Execute बटन क्लिक ईवेंट को हर बार सक्रिय करने का कारण बनता है। लेकिन क्यों?

ऐसा प्रतीत होता है कि preserveForm = true फॉर्म के भीतर क्लिक इवेंट को बनाए रख रहा है लेकिन मुझे अपनी क्वेरीस्ट्रिंग को बनाए रखने के लिए इसकी आवश्यकता है।

Protected Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
  test()
End Sub

Protected Sub test()
  Dim writer As TextWriter = New StringWriter()
  Server.Execute("ThisPage", writer, True)
End Sub

मुझे पता है कि मैं लूप की वापसी की जांच के लिए किसी प्रकार का या परिवर्तनीय ध्वज कर सकता हूं लेकिन मैं जानना चाहता हूं:

  • क्या यह सही व्यवहार है?
  • ऐसा है, क्यों?
  • लूप से बचने के लिए स्वच्छ विधि।
  • संपूर्ण पृष्ठ html को कैप्चर करने के लिए अनुशंसित वैकल्पिक तरीके।
1
DreamTeK 8 नवम्बर 2017, 12:58

1 उत्तर

सबसे बढ़िया उत्तर

HttpServerUtility.Execute Method के MSDN पेज के अनुसार , इस पद्धति के preserveFrom पैरामीटर में निम्नलिखित परिभाषित व्यवहार है:

प्रपत्र संरक्षित करें

प्रकार: सिस्टम। बूलियन

सत्य QueryString को संरक्षित करने के लिए और प्रपत्र संग्रह; गलत QueryString और प्रपत्र संग्रह को साफ़ करने के लिए।

प्रपत्र संग्रह में पृष्ठ पर नियंत्रण के लिए राज्य डेटा शामिल होगा। जैसे, यह एक अनंत लूप का कारण बन सकता है यदि किसी घटना के हिस्से के रूप में निष्पादित () किया जाता है।

3
Cake or Death 8 नवम्बर 2017, 14:05