DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
Metatags während der Laufzeit in ASP .net setzen

Metatags liefern zusätzliche Information über die Webpage. Dies kann an den User adressiert sein oder an andere Software wie Suchmaschinen zu weiteren Verarbeitung. Metatags lassen sich leider nachträglich nicht setzen.

Mit ASP .net und einigen Umwegen lässt sich aber doch Einfluss auf die Metatags und deren Inhalt nehmen.

Um zu zeigen wovon wir reden vorerst ein Auszug aus www.devtrain.de

<html>
<head>
<link rel="stylesheet" type="text/css" href='/design/stylesheets/intranaut.css'>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="content-language" content="de">
<META NAME="Title" CONTENT="Devtrain Der Werkzeugkasten für Entwickler">
<META NAME="Author" CONTENT="ppedv ag Burghausen">
<META NAME="Revisit" CONTENT="After 3 days">
<meta name="revisit-after" content="3 days">
<META NAME="Keywords" CONTENT="ASP, VB, ...Backoffice">
<META NAME="Description" CONTENT="Täglich aktuelle Tipps, Tricks, Beiträge, Artikel zu Web Entwicklung. Themen rund um XML, ASP und DOT NET">
<META NAME="page-topic" CONTENT="Software">
<meta NAME="robots" CONTENT="INDEX,FOLLOW">
usw.

Der erster Lösungsansatz verwendet ein einfaches Response.write.
<HEAD><title>
<%="Devtrain Der Werkzeugkasten für Entwickler"%>
</title>
<%response.write("<META NAME='Description' CONTENT='Devtrain Der Werkzeugkasten für Entwickler'>")%>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">

Dies erzeugt im Browser das gewünschte Resultat, bewegt sich aber absolut ausserhalb jeder Idee von .NET.

Metatest1

Nun sehen wir also wie wir den Titeltag dynamisch füllen können. Dazu nehmen wir eine Variable. Gleichzeitig bekommt die Pageklasse diese Variable als Public Proberty. Dieses Proberty kann dann in Page Load gefüllt werden.

<HEAD><title><%=variable%>
.....
Codebehind

Public Class metatest
    Inherits System.Web.UI.Page
    Public variable As String

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        variable = Date.Now.TimeOfDay.ToString
    End Sub
End Class


Der Autor hat in einem Newsbeitrag auch noch eine andere Möglichkeit gefunden. Diese wird hier auch noch erläutert.

Dazu musst zuerst in der Codebehind class ein protected Field zb. mit dem Namen Kopf vom Type HtmlGenericControl erstellt werden.

Protected Kopf As HtmlGenericControl

In der ASPX Datei, muss dann dem Head Tag der Page die ID Kopf geben und runat="server" setzen.

In der Page_Load Methode kann dann  der Meta Tag erstellt werden. Dieser wird dann der
Controls collection des Kopf Objektes hinzugefügt.

<HEAD id="Kopf" runat=server>
....

codebehind
Public Class metatest
    Inherits System.Web.UI.Page
    Protected Kopf As HtmlGenericControl
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myTag As HtmlGenericControl = New HtmlGenericControl("meta")
        myTag.Attributes.Add("name", "Author")
        myTag.Attributes.Add("content", "Hannes Preishuber, ppedv ag")
        Kopf.Controls.Add(myTag)       
    End Sub
End Class

Allerdings können nicht beide Methoden gleichzeitig verwendet werden. Die zweite Methode erfordert mehr Code, ist allerdings objektorientiert. Und das ist doch Cool oder?

 

 

 

 


 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 05.06.2002
  Gültig bis: 05.07.2002
6 Ratings
Bewertung: 76,7%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG