2008-09-29 6 views
0

Disons que j'ai un formulaire Web qui inclut des contrôles utilisateur. La balise de titre de mon formulaire Web "principal" est générée dans l'un des contrôles utilisateur. Passer ces données au formulaire Web est actuellement fait comme ceci.Les variables partagées publiques de contrôle utilisateur dans ASP.NET 1.1 ne fonctionnent pas comme prévu

Public Sub SetPageValues(ByVal sTitle As String, ByVal sKeywords As String, ByVal sDesc As String) 
    MySystem.Web.UI.Main.PageSettings(sKeywords, sDesc, sTitle) 
End Sub 

Principal est le nom du formulaire Web. Voici le sous qui définit ces valeurs dans Main.

Public Shared Sub PageSettings(ByVal strKeywords As String, ByVal strDesc As String, ByVal strTitle As String) 
    Dim _lblTitle As System.Web.UI.webcontrols.Literal = lblTitle 
    Dim _lblMetaDesc As System.Web.UI.webControls.Literal = lblMetaDesc 
    Dim _lblMetaKeywords As System.Web.UI.WebControls.Literal = lblMetaKeywords 
    Dim _lblMetatitle As System.Web.UI.WebControls.Literal = lblMetaTitle 
    _lblTitle.Text = strTitle 
    _lblMetaDesc.Text = "<meta name=""description"" content=""" + strDesc + """>" 
    _lblMetaKeywords.Text = "<meta name=""keywords"" content=""" + strKeywords + """>" 
    _lblMetatitle.Text = "<meta name=""title"" content=""" + strTitle + """>" 
End Sub 

Après tout cela, nous sommes en cours d'exécution et la mémoire mis en commun recycler toutes les 400 minutes, cependant, les titres de page sont corrompus et affichent de manière incorrecte. Quelqu'un a-t-il d'autres idées que de passer à une nouvelle version .net?

En faisant des propriétés dans le contrôle utilisateur, les valeurs peuvent maintenant être transmises correctement.

Répondre

1

Personnellement, voici ce que je ferais. First - Changer le titre à un HTML.GenericControl Du côté ASPX, il ressemblerait à ceci:

<title runat="server" id="title" /> 

Puis, je modifier les balises META être aussi des contrôles génériques html

<meta name="description" content="description" id="description" runat="server" /> 
<meta name="keywords" content="keys" id="keywords" runat="server" /> 

À ce stade, vous pouvez modifier les valeurs comme suit:

title.InnerText = "This Title" 
keywords.Attributes("content") = "key,word" 
description.Attributes("content") = "A demonstration of Setting title and meta tags" 
Questions connexes