Добавление META тегов на ASP.NET страницу
Для лучшего SEO (Search Engine Optimisation) рекомендуется название статьи помещать
В ASP 3 и PHP все просто:
В ASP.NET странице указываем:
<head runat=«server»></head>
Теперь из кода можно установить Title нашей Asp.Net страницы вот так:
this.Page.Title = «My title»;
a любые Meta-теги добавлять так:
private void AddMetaTag(string name, string content) { // Эта функция создает новый объект HtmlMeta, устанавливает его свойства, //и добавляет его в Page.Header.Controls HtmlMeta meta = new HtmlMeta(); meta.Name = name; meta.Content = content; // Добавляем контрол в HTML Page.Header.Controls.Add(meta); } AddMetaTag(«keywords», «слова, слова, слова»); AddMetaTag(«description», «короткое описание статьи»);
Эти мета-теги попадут в
сгенерированой HTML страницы.
Здравствуйте!
Подскажите, этот пример будет работать в .NET Framework 1.1 или только в 2.0?
На 1.1 не пробовал, но думаю, будет =)
Адель, очень прошу, выкрои из своего драгоценного времени 30 минут и покажи реальный пример, как выдёргивать теги (дискрипшн и кейворд) из базы (в зависимости от того, какая страница открыта).
Т. е. изначально, я в админке создал новую статью, и в поле "Кейвордс" — написал ключевики, "Дискрипшн" — описание страницы, "Титл" — название статьи. Потом благополучно сохранил это в базу.
Теперь, я вывожу список статей с анонсами с помощью TableAdapter, когда пользователь счёлкает по статье, то переходит в карточку статьи (параметр передаётся встроеными средствами, через id={0}, это если использовать даталист). А как передать этот параметр, чтобы выдернуть из базы Титл и др. тэги для этой статьи?
Пожалуйста, освети!!! И чем бысрее тем .... будет всем :-).
[b]Metla2[/b], озадачили Вы меня с TableAdapter-ом :-)
Я делаю довольно очень просто: при переходе на страницу открывается /art.aspx?id=123456 (id — уникальный идентификатор статьи)
а дальше:
int intID = Convert.ToInt32(Request.QueryString["id"]);
this.Page.Title = GetArticleName(intID);
AddMetaTag("keywords", GetKeyWords(intID);
AddMetaTag("description", GetArticleDescr(intID));
string GetKeyWords(int intArtID)
{
SqlConnection SQLDB;
SqlCommand SQLDBCMD;
SqlDataReader SqlR;
string strResult="";
SQLDB = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SQLDBCMD = new SqlCommand("SELECT id_article, article_keywords FROM articles WHERE id_article =’" + intArtID + "’", SQLDB);
SQLDB.Open();
SqlR = SQLDBCMD.ExecuteReader();
while (SqlR.Read())
{
strResult = SqlR["article_keywords"].ToString();
}
SqlR.Close();
SQLDB.Close();
return strResult;
}
string GetArticleName(int intArtID)
{
SqlConnection SQLDB;
SqlCommand SQLDBCMD;
SqlDataReader SqlR;
string strResult="";
SQLDB = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SQLDBCMD = new SqlCommand("SELECT id_article, article_name FROM articles WHERE id_article =’" + intArtID + "’", SQLDB);
SQLDB.Open();
SqlR = SQLDBCMD.ExecuteReader();
while (SqlR.Read())
{
strResult = SqlR["article_name"].ToString();
}
SqlR.Close();
SQLDB.Close();
return strResult;
}
string GetArticleDescr(int intArtID)
{
SqlConnection SQLDB;
SqlCommand SQLDBCMD;
SqlDataReader SqlR;
string strResult="";
SQLDB = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SQLDBCMD = new SqlCommand("SELECT id_article, article_desc FROM articles WHERE id_article =’" + intArtID + "’", SQLDB);
SQLDB.Open();
SqlR = SQLDBCMD.ExecuteReader();
while (SqlR.Read())
{
strResult = SqlR["article_desc"].ToString();
}
SqlR.Close();
SQLDB.Close();
return strResult;
}
Если тут неудобно читать, могу на емейл отправить )
ОООО, спасибо тебе большое. Читать конечно не очень, но ничего, и так нормально, а если есть возможность скинь проект или что у тебя на почту. Спасибо тебе ещё раз!!!
"В ASP 3 и PHP все просто: <title><%= strPageTitle %> </title>, а в .Net, к сожалению ))) так сделать нельзя!"