मेरे पास एक ऐसा पृष्ठ है जिसमें उपयोगकर्ता नियंत्रण का एक समूह है। मैं सीधे सामग्री में "मैक्रोज़" या "प्लेसहोल्डर" रखने में सक्षम होना चाहता हूं जो मेरे कोड में बदल दिया जाएगा। यह वास्तव में कोई फर्क नहीं पड़ता है, लेकिन मैं अपने सीएमएस के रूप में Ektron का उपयोग कर रहा हूँ।आउटपुट से ठीक पहले मैं पूरी एएसपी.NET पेज सामग्री को कैसे संशोधित कर सकता हूं?
क्या कोई पेज इवेंट है जो मैं पूरी रेंडर पेज सामग्री पर एक स्ट्रिंग को प्रतिस्थापित करने के लिए हुक कर सकता हूं, क्लाइंट को भेजे जाने से ठीक पहले?
protected override void Render(HtmlTextWriter writer)
{
string content = string.Empty;
using (var stringWriter = new StringWriter())
using (var htmlWriter = new HtmlTextWriter(stringWriter))
{
// render the current page content to our temp writer
base.Render(htmlWriter);
htmlWriter.Close();
// get the content
content = stringWriter.ToString();
}
// replace our placeholders
string newContent = content.Replace("$placeholder1$", "placeholder1 data").Replace("$placeholder2$", "placeholder2 data");
// write the new html to the page
writer.Write(newContent);
}
हां, यह सही जगह है लेकिन क्या यह संभव है (और बुद्धिमान) रीसेट करने और स्ट्रीम पढ़ने के लिए? –
आप स्ट्रीम को कभी भी "रीसेट नहीं कर रहे हैं" क्योंकि इसे अभी तक भेजा नहीं गया है। मैं निश्चित नहीं हूं कि इसके बुद्धिमान, नहीं, मैंने अभी प्रश्न का उत्तर दिया है – JustLoren
मैं अभी इस विधि का उपयोग कर रहा हूं, लेकिन यह देखने के लिए उत्तर देने के लिए इंतजार करूँगा कि कोई बेहतर समाधान है या नहीं। असल में मैं ... पृष्ठ को एक अस्थायी बफर पर लिखने दें। बफर संशोधित करें। संशोधित एक के साथ मूल बफर को बदलें। –