“response.redirect cannot be called in a callback call” Hatası
ASP.net'te callbackpanel'de callback event içinde Response.Redirect kullanıldığı taktirde bu hata alınır. Bu hatayı düzeltmek için sayfanın callback olup olmadığı kontrol edilir, eğer callback ise javascript ile sayfa yönlendirilmesi yapılabilinir, callback değil ise zaten redirect çalışacaktır. Sonuç olarak aşağıdaki fonksiyon işinizi görecektir.
public void ClientRedirect(string RedirectPage)
{
if (Page.IsCallback)
{
string script = string.Format("document.location.href = '{0}');", RedirectPage);
ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "redirect", script, true);
}
else
{
Response.Redirect(RedirectPage);
}
}
Kaynak: http://forums.asp.net/t/1165851.aspx
ASP.net ile başka bir sitenin meta bilgisini alma
Bu işlemi yapmak için System.Net.WebClient sınıfı kullanılacaktır. System.Net.WebClient sınıfı uzak bir sunucudan verilerin download edilmesine olanak sağlamaktadır.İndirdiğimiz veriler içinde bizim işimize yarayan kısmını bulmak için Regex methodu kullanılacaktır. Regex.Match methodunu kullanabilmek için using System.Text.RegularExpressions referansını eklememiz gerekmektedir. Kısaca Regex.Match methodundan bahsedersek; Regex.Match methodu ile bir string içinde çok detaylı aramalar yapabilmemize olanak sağlanmaktadır.
Referanslara eklenmesi gerekiyor
using System.Text.RegularExpressions;
Title alma fonksiyonu;
protected string GetTitle(string myurl)
{
//WebClient create ediliyor.
System.Net.WebClient myclient = new System.Net.WebClient();
//myclient.DownloadString(myurl) ile sitemize bağlanıyoruz ve verilerimizi indiriyoruz.
//(@"<title>(.*?)</title>") ile title tağı arasında bulunan string değerini arıyoruz. ve bu değeri return olarak geri dönderiyoruz.
return Regex.Match(myclient.DownloadString(myurl), (@"<title>(.*?)</title>")).Groups[1].ToString();
}
Kullanımı;
protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = GetTitle("http://www.ramazanulucay.com");
}
Bu şekilde istediğimiz diğer meta taglarıda kolaylıkla alabiliriz...
Farklı olarak Cem arkadaşımızın vermiş olduğu kodları da deneyebilirsiniz.
public static string otomatik_keywords_cek(string site)
{
string URL = site;
WebClient client = new WebClient();
Stream data = client.OpenRead(URL);
StreamReader reader = new StreamReader(data);
string str = "";
str = reader.ReadToEnd();
string cem = str;
cem = cem.Substring(cem.IndexOf("keywords"), cem.Length - cem.IndexOf("keywords"));
cem = cem.Replace("keywords", ""); cem = cem.Replace("/", ""); cem = cem.Replace("content=", "");
cem = cem.Replace("\", "");
string[] ycem = cem.Split('>');
return ycem[0];
}
Kolay gelsin.
Tarayıcı Bilgilerini Alma
Tasarımcılar için sinir bozucu bir olaydır browserlar ile uğraşmak. Tarayıcı pazarında Microsoft başta olmak üzere diğer şirketlerinde W3 standartlara uymamasından kaynaklanıyor. W3 standartlarında sayfa hazırlıyorsun ama nafile siteye girdiğinde her bir browserda birbirinden farklı hatalar görüyorsun. Şu günlerde Ie8 çıktı. Microsoft Ie8 için bir metatag geliştirmiş. Bu metatag sayesinde Ie7 de çalışan sitemiz Ie8'de sorunsuz çalışacaktır deniliyor.