Tôi có một trang có nhiều điều khiển người dùng trên đó. Tôi muốn có thể có "macro" hoặc "trình giữ chỗ" trực tiếp trong nội dung sẽ được thay thế trong mã của tôi. Nó không thực sự quan trọng, nhưng tôi đang sử dụng Ektron làm CMS của tôi.Làm thế nào tôi có thể sửa đổi toàn bộ nội dung trang ASP.NET ngay trước khi đầu ra của nó?
Có bất kỳ sự kiện trang nào mà tôi có thể móc vào để thực hiện chuỗi thay thế trên toàn bộ nội dung trang được hiển thị, ngay trước khi nó được gửi cho khách hàng không?
CẬP NHẬT
Đây là mã mà tôi hiện đang sử dụng để thực hiện điều này:
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);
}
Có, đây là địa điểm phù hợp nhưng có thể (và khôn ngoan) để đặt lại và đọc luồng không? –
bạn sẽ không bao giờ "đặt lại" luồng vì luồng này chưa được gửi. Tôi không chắc chắn nếu khôn ngoan của nó, không, tôi chỉ trả lời câu hỏi lol – JustLoren
Tôi đang sử dụng phương pháp này ngay bây giờ, nhưng sẽ chờ đợi để chấp nhận câu trả lời để xem nếu có một giải pháp tốt hơn. Về cơ bản, tôi ... Cho phép trang ghi vào bộ đệm tạm thời. Sửa đổi bộ đệm. Thay bộ đệm gốc bằng bộ đệm đã sửa đổi. –