Como faço para recuperar uma meta tag personalizada em uma página?
-
23-09-2019 - |
Pergunta
Eu tenho o seguinte código:
List<HtmlMeta> metas = new List<HtmlMeta>();
foreach (Control c in this.Page.Header.Controls)
if (c.GetType() == typeof(HtmlMeta))
{
HtmlMeta meta = (HtmlMeta)c;
if (meta.Name == "CategoryID")
strMeta = meta.Content;
}
Eu criei esta meta tag personalizada:
<meta id ="CategoryID" name="CategoryID" content="35" />
Eu passo pelo código e quebro em if (meta.Name == "CategoryID")
Ele chega à meta tag antes disso, mostra meta.name = "" depois sai do loop. Ele nunca vê minha meta tag personalizada.
A tag antes deste é: <meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" />
Agora você pode perguntar por que eu faria isso. Estou usando o DOTNETNUKE CMS, preciso de uma maneira de o usuário final colocar um parâmetro necessário para uma consulta no código de back -end. Parece que não consigo colocar nada no URL, como um consultor fora do link para chegar à página, então tentei uma meta tag, pois eles podem adicionar isso nas configurações da página (guia) no DNN.
Eu tentei deixar de fora o ID na etiqueta e apenas o nome, mas o mesmo problema.
Estou procurando uma solução intensa simples e não -recursos.
Qualquer percepção disso ou solução alternativa no DNN ou ASP.NET seria ótima.
Desde já, obrigado.
Solução 2
Minha solução funciona, é o processo de como a página é renderizada no DotNetnuke.
Outras dicas
Como você está adicionando os meta -controles à página? Como a tag "Verificar-V1" é realmente adicionada à página?
Pergunto porque os controles normais de HTML não aparecem na coleção de controles, a menos que eles tenham runat="server"
na declaração deles, ou eles são adicionados à página dinamicamente através do seu código .NET.
Se sua marcação se parece mais disso:
<meta name="CategoryID" value="<%=categoryId%>" />
Então você não seria capaz de encontrar o meta -controle da maneira que está tentando.
Você deve deixar de fora o ID da tag, pois isso não é suportado pela especificação.