2012-11-21 3 views
1

У меня есть немного странная проблема, что я пытаюсь выяснить, как обойти. В принципе, компания, с которой я работаю, использует CMS, которая позволяет только встроенный код для ASP.net и использует систему «стилей» для работы с такими, как Header/Footer.Динамический <title> тег в asp.net встроенный код

Теперь проблема связана с определенной страницей, на которой отображается информация о курсе, у нас есть код asp.net, который генерирует страницу, основанную на факторах из предыдущей страницы ссылок IE, на странице поиска курса, которая затем ведет вас к курсу вы выбрали.

Теперь у нас есть страшный SEO, и мне нужно иметь возможность динамически создавать заголовки/метатеги для страницы, основанные на выборе из поиска курса.

Проблема заключается в SEO, мне нужен тег заголовка, который находится в заголовке, но идентифицируемая информация для этой страницы входит в код asp.net, который захватывает информацию о курсе из БД, и это выполняется в теле страницы ,

Есть ли какой-либо способ захватить информацию или запустить другой блок кода asp.net в заголовке, чтобы настроить теги, которые мне нужны?

Прошу прощения, если это не имеет большого смысла, но наша система CMS делает все более сложным, но я не могу ее удалить.

Спасибо!

+0

Я не понимаю, что вы пытаетесь сделать. Может быть, пример с некоторым кодом поможет. – Aristos

ответ

3

Так что, если я вас правильно понимаю, вы хотите добавить <title> и <meta ...> теги в свои просмотренные страницы: <head> тег в вашем серверном коде?

Если вы используете ASP.NET 2.0 или выше, вы можете изменить элемент <head>, чтобы он был доступен для кода сервера, добавив в объявление runat="server". Затем вы можете установить значение заголовка через свойство Pages 'Title.

Чтобы добавить <meta> теги, вам необходимо запустить ASP.NET 4.0, который добавляет свойства MetaKeywords и MetaDescription к объекту Page.

Так, чтобы положить все это вместе, ваша страница Разметка должна включать в себя:

<% Page ... %> 
<html> 
    <head runat="server"> 
    ... 
    </head> 
    <body> 
    ... 

, а затем в коде на стороне сервера:

Page.Title = "My course page"; 
Page.MetaDescription = "My Page for Course x"; 
Page.MetaKeywords = "course, education, learning"; 

Это должно затем вынести, как:

<html> 
    <head> 
     <title>My course page</title> 
     <meta name="description" content="My Page for Course X" /> 
     <meta name="keywords" content="course, education, learning" /> 
.... 
+0

Это было то, что я получал, но думаю, что вы нанесли ему гвоздь на голову. Спасибо за подтверждение моих подозрений. – PipBoy

+0

Просто чтобы добавить это, он отлично работал, поэтому большое вам спасибо. – PipBoy

0

Поместите заполнитель в тег заголовка и из кода за добавлением метатегов, используя код ниже.

HtmlMeta meta = new HtmlMeta(); 
meta.Attributes.Add("property", "og:title"); 
meta.Attributes.Add("content", lblBannerTitle.Text.Length > 68 ? lblBannerTitle.Text.Substring(0, 68) : lblBannerTitle.Text); 
MetaPlaceHolder.Controls.Add(meta); 

Таким образом, у вас может быть любое количество метатег. Просто убедитесь, что максимальная длина метатеги для заголовка равна 68, а описание метатеги max - 148.

Сообщите мне, работает ли это с вашим кейсом.