Для лучшего SEO (Search Engine Optimisation) рекомендуется название статьи помещать
В ASP 3 и PHP все просто: , а в .Net, к сожалению, так сделать нельзя! Зато, можно сделать по-другому :-)
В 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 страницы.
Меня зовут Адель Шигабутдинов, этот блог я использую для записок самому себе. 
Kosten
/ 27.08.2008Здравствуйте!
Подскажите, этот пример будет работать в .NET Framework 1.1 или только в 2.0?
DrFaust
/ 27.08.2008На 1.1 не пробовал, но думаю, будет =)
Metla2
/ 28.10.2008Адель, очень прошу, выкрои из своего драгоценного времени 30 минут и покажи реальный пример, как выдёргивать теги (дискрипшн и кейворд) из базы (в зависимости от того, какая страница открыта).
Т.е. изначально, я в админке создал новую статью, и в поле "Кейвордс" – написал ключевики, "Дискрипшн" – описание страницы, "Титл" – название статьи. Потом благополучно сохранил это в базу.
Теперь, я вывожу список статей с анонсами с помощью TableAdapter, когда пользователь счёлкает по статье, то переходит в карточку статьи (параметр передаётся встроеными средствами, через id={0}, это если использовать даталист). А как передать этот параметр, чтобы выдернуть из базы Титл и др. тэги для этой статьи?
Пожалуйста, освети!!! И чем бысрее тем …. будет всем :-).
DrFaust
/ 28.10.2008[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;
}
Если тут неудобно читать, могу на емейл отправить )
metla2
/ 30.10.2008ОООО, спасибо тебе большое. Читать конечно не очень, но ничего, и так нормально, а если есть возможность скинь проект или что у тебя на почту. Спасибо тебе ещё раз!!!
г-н Тараканофф
/ 09.01.2010"В ASP 3 и PHP все просто: <title><%= strPageTitle %> </title>, а в .Net, к сожалению ))) так сделать нельзя!"
– я именно так и делаю. Либо объявляю в классе страницы глобальную (public) переменную strPageTitle и устанавливаю её значение, либо делаю так: <title><% = (string)Context.Items["PAGE_TITLE"] %></title>, а в классе страницы устанавливаю Context.Items["PAGE_TITLE"] = "Заголовок". Такой способ для тех, кто не любит WebForms.