2011-06-01 33 views

Respuesta

18

no he probado esto con refresco, pero en general se puede añadir una etiqueta meta de esta manera:

var keywords = new HtmlMeta { Name = "keywords", Content = "one,two,three" }; 
       Header.Controls.Add(keywords); 

actualización: es posible de esta manera. Compruebe Rick Strahl http://www.west-wind.com/weblog/posts/2006/Aug/04/No-more-Meta-Refresh-Tags

+1

he utilizado la solución en su vínculo con Blog de Rick Strahls; funcionó un placer. Muchas gracias. – doogdeb

+0

He intentado hacer lo siguiente como arriba: if (! IsPostBack) { // Meta Tags. var metaTags = new HtmlMeta {Name = "W", Content = "Smart"}; Header.Controls.Add (metaTags); metaTags = new HtmlMeta {Name = "W.cg", Contenido = "afasfsa"}; Header.Controls.Add (metaTags); Me da un error: no se puede modificar la colección de controles. Tu ayuda será apreciada. – Ruruboy

3

Puede agregar un marcador de posición de contenido en la página maestra en la sección principal del html. A continuación, puede agregar elementos a esta sección de contenido en su página de contenido específico y se enviará a la cabecera de la página.

16

This page explica la nueva función: ASP.Net 4 añade 2 nuevas propiedades relacionadas etiqueta Meta a la página. Se pueden usar para establecer metaetiquetas para palabras clave y descripción.

Se puede establecer en el código subyacente:

Page.MetaKeywords = "keyword1, keyword2, keyword3"; 
Page.MetaDescription = "Example of new meta tag support in ASP.Net 4"; 

También puede configurar en la directiva @ Page:

<%@ Page Language="C#" AutoEventWireup="true" 
MetaKeywords="keyword1, keyword2, keyword3" 
MetaDescription="Example of new meta tag support in ASP.Net 4" 
CodeFile="Default.aspx.cs" Inherits="_Default" %> 

que la salida de cualquiera de estos métodos representa HTML similar a la siguiente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title> 
     ASP.NET 4 Meta Tag Support 
    </title> 
    <meta name="description" content="Example of new meta tag support in ASP.Net 4" /> 
    <meta name="keywords" content="keyword1, keyword2, keyword3" /> 
</head> 
<body> 
</body> 
</html> 
+1

No puede agregar una actualización como esta. – Pleun

+1

+1 ¡No sabía que esto era posible con ASP.NET 4! – Curt

+0

No responde la pregunta. –

3
protected void Page_Load(object sender, EventArgs e) 
{ 
    Page.Title   = "Title of page"; 
    HtmlMeta tag  = new HtmlMeta(); 
    tag.Name   = "description"; 
    tag.Content   = "description of page"; 
    Header.Controls.Add(tag); 
    HtmlMeta tagKeyword = new HtmlMeta(); 
    tagKeyword.Name  = "keywords"; 
    tagKeyword.Content = "keywords of page"; 
    Header.Controls.Add(tagKeyword); 
} 

(source url)

4

añadir a continuación el código en la página diseñador

<meta id="metaDescription" runat="server" name="Description" /> 

Ahora añado a continuación código a su página de Cs

Page.MetaKeywords = "keyword1, keyword2, keyword3"; 
    Page.MetaDescription = "Example of new meta tag"; 
+1

No necesitó agregar la metaetiqueta a Site.Master para que el código funcione. – Brent

+1

Una vez que haya agregado el archivo aspx y lo haya guardado, se agregará automáticamente al archivo del diseñador en Visual Studio. –

2

Una forma que encontré para hacer esto (que No vi la lista aquí) era tener un Literal y llenarlo con cualquier tipo de metaetiquetas que desee. En mi caso, tenía que usarlo sin una página principal, para tener Facebook reconoce una imagen en miniatura, el título y la descripción:

<head runat="server"> 
    <asp:Literal runat="server" ID="litMeta" /> 
... 
</head> 

CodeBehind:

var img = "<meta property=\"og:image\" content=\"thumbnail.jpg\" />"; 
var title = "<meta property=\"og:title\" content=\"Title\" />"; 
var desc = "<meta property=\"og:description\" content=\"Description\" />"; 
litMeta.Text = img + title + desc; 
Cuestiones relacionadas