Question

D'accord,

Je sais qu'il est bizarre, mais quand je mets ce code entre <head runat="server"></head> dans master.page, voici comment cela rend dans:

 <link id="ctl00_Link1" rel="shortcut icon" href="../%3C%25%20ResolveUrl(%22~/Resources/Pictures/Shared/Misc/favicon.ico%22);%20%25%3E" type="image/x-icon" />

Il ne voit pas asp.net quelque chose doit prendre en charge.

Voici le code original:

<link id="Link1" rel="shortcut icon" href='<%=ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico") %>' type="image/x-icon" runat="server" />

En fait Asp.Net ne prend pas en charge le code ci-dessous et rend comme html normal.

Comment puis-je obtenir sur ce problème?

Merci d'avance ...

Modifier et résolu

les gens d'accord, il y a pour ce faire est rien. Je l'ai finalement compris parce ResolveUrl ou ResolveClientUrl travaille uniquement pour ces ci-dessous:

@import '<%= ResolveUrl("~/Resources/Styles/MainMaster/MainDesign.css") %>';
<script src='Resources/Scripts/Libraries/jquery-1.4.2.js' type="text/javascript"</script>

il est trop littérale pour le lien si vous avez besoin de mettre des éléments de lien dans la balise corps comme:

<body>
    <link id="iconOne" rel="shortcut icon" type="image/x-icon" href="Resources/Pictures/Shared/Misc/favicon.ico"/>
    <link id="iconTwo" rel="icon" href='Resources/Pictures/Shared/Misc/favicon.ico' type="image/ico" />
</body>
Était-ce utile?

La solution

Alors, la raison pour laquelle vous avez exécuté dans votre premier numéro est parce que la balise link avait runat="server" Cela dit asp.net de le traiter comme un contrôle serveur, plutôt un littéral. Parce que son un contrôle serveur, votre balise scriptlet (de <%= %>) ne fait pas vraiment quoi que ce soit, depuis sa propriété de contrôle du serveur, il traite ce texte littéral.

Il y a deux façons de le manipuler. La première est de ClientScriptManager pour enregistrer une start-up scénario. Cela mettra votre balise de lien dans le corps, ce qui est la façon dont Microsoft dit que vous devriez le faire, mais il est esthétiquement pas agréable. L'autre option est de faire quelque chose comme ça dans votre Page_Load

var link = new HtmlGenericControl("link");
link.Attributes.Add("rel", "shortcut icon");
link.Attributes.Add("src", ResolveUrl("~/Resources/Pictures/Shared/Misc/favicon.ico"));
link.Attributes.Add("type", "image/x-icon");

Header.Controls.Add(link);

Il construit un contrôle programatically, il ajoute ensuite à la collection de contrôles sur la tête, ce qui rendra comme ce que vous voulez à la fin de l'étiquette de tête. Problème est que son travail un peu plus, et son mieux pour éviter tripoter avec des collections de contrôle au niveau du code derrière si vous pouvez vous en sortir avec elle.

Autres conseils

Cela pourrait être en fait un peu plus compliqué que cela doit être. Avez-vous essayé simplement à l'aide ~ dans le chemin d'icône, et la mise <head runat="server">?

Par exemple:

<head runat="server">
    ...
    <link rel="icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico" 
        type="image/x-icon" />
    <link rel="shortcut icon" href="~/Resources/Pictures/Shared/Misc/favicon.ico"
        type="image/x-icon" />
    ...
</head>

SO connexes répondre : favicon Non Affichage

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top