2011-10-04 10 views
5

<head/> bölümünde runat = "server" ayarlanmamış bir sayfam var. Sayfadaki herhangi bir kodu değiştirmek için erişimim yok.Bir Page of .NET'in <head/> bölümünü runat = "server" olmaksızın bir Kullanıcı Kontrolünden değiştirebilir miyim?

Bu sayfada erişebileceğim kullanıcı denetimi bulunmaktadır. Kullanıcı kontrolünden sayfanın baş bölümüne <meta/> etiketi ekleyebilir miyim? Sunucu tarafı olması gerekiyor, bu yüzden bir javascript çözümü işe yaramayacak.

+2

. ASP.NET, ilk denetimden önceki bölümün, nihai çıktı oluşturmak için birleştirilmesi gereken tek bir dize olmasını dikkate alır. – R0MANARMY

+1

Her zaman javascript – Dani

+0

Verileri gizli bir alanda kullanabilir ve meta verileri güncellemek için javascript'i kullanabilirsiniz. –

cevap

2

Bir seçenek, bir Yanıt Filtresi oluşturmak ve kullanıcıya gönderilmeden önce çıktısını değiştirmek. muhtemelen değil kolayca `runat = "server"` olarak işaretlenmiş değilse

http://www.4guysfromrolla.com/articles/120308-1.aspx

+0

Bu benimkinden çok daha iyi bir yaklaşım. Bununla birlikte, bir denetimin içinden yanıt filtreleri eklemek, kodun korunmasını zorlaştırır. – R0MANARMY

+0

Bu harika çalıştı. İkinize de teşekkürler. – fehays

2

Nereye dize <head> başlar görmek için

(this.Page.Controls[0] as LiteralControl).Text 

metni ayrıştırın ve orada böylece runat="server" ile işaretlenmiş olmadan sayfa başlığında içine kendi kod enjekte içinde ne gerekiyorsa metin ekleyebilir.

bu (aksi <head> eleman böylece normalde erişebilirsiniz runat="server" olarak işaretlendi olurdu) büyük olasılıkla olmamalı kodunuzu almanın oldukça hacky yoludur olsa lütfen unutmayın. Bu, daha sonra bir tarihte bir ASP.NET denetimi olarak değiştirilmişse, bu durum da kırılacaktır. Ana sayfalarla çalışmayabilir, en üstteki literal öğeyi arayan kontrol ağacında yürümeniz gerekir.

İlgili konular