Frage

Okay,

Ich weiß, es ist seltsam, aber wenn ich diesen Code zwischen <head runat="server"></head> in master.page setzen, das ist, wie es macht in:

 <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" />

Es ist nicht etwas asp.net Bedürfnisse sehen kümmern.

Dies ist der ursprüngliche Code:

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

Im Grunde Asp.Net nicht kümmert den nachfolgenden Code und macht als normalen html.

Wie kann ich dieses Problem verwinden?

Vielen Dank im Voraus ...

Bearbeiten und gelöst

Okay, Leute, gibt es keine Möglichkeit, dies zu tun. Ich habe endlich herausgefunden, weil ResolveUrl oder ResolveClientUrl nur für diese unterhalb arbeiten:

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

Es ist zu wörtlich für Link, damit Sie müssen wie Verbindungselemente in Body-Tag setzen:

<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>
War es hilfreich?

Lösung

Also, der Grund, warum Sie in Ihre erste Ausgabe lief war, weil der Link-Tag runat="server" hatte Dies sagt asp.net es als Server-Steuerelement zu behandeln, dann eher eine wörtliche. Weil seine Server-Steuerung, Ihr scriptlet-Tag (<%= %>) nicht wirklich etwas zu tun, da seine Server Control-Eigenschaft es als normaler Text behandelt.

Es gibt zwei Möglichkeiten, es zu behandeln. Zunächst ist zu ClientScriptManager ein Startup registrieren Skript. Dadurch wird Ihr Link-Tag in den Körper gelegt, die die Art und Weise ist Microsoft sagt, dass Sie es tun sollten, aber ästhetisch ist nicht so schön. Die andere Option ist so etwas wie dies in Ihrem Page_Load zu tun

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);

Dies baut programmatisch eine Steuerung aus, fügt sie dann an die Kontrollen Sammlung auf dem Kopf, die wie machen, was Sie am Ende des Kopfes Tages wollen. Problem dabei ist, dass es eine mehr Arbeit biss, und es ist besser, auf dem Code hinter Ebene nachäffen mit Steuer Sammlungen zu vermeiden, wenn Sie damit durchkommen können.

Andere Tipps

Das könnte so dass es ein wenig komplizierter, als es sein muss. Haben Sie versucht, einfach mit ~ in Symbolpfad und Einstellung <head runat="server">?

Zum Beispiel:

<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>

Related SO Antwort : Favicon nicht angezeigt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top