Gibt es eine System.Web.UI.ClientScriptManager Methode, dass die Register Skripte innerhalb des -Tag?
-
23-09-2019 - |
Frage
Ich weiß, es ist streng OK <script>
Tags im Körper zu setzen, aber im Interesse der Ordentlichkeit möchte ich Verwendung System.Web.UI.ClientScriptManager
wie ein Skript im <head>
meiner Seite zu registrieren. Gibt es eine Methode, dies zu erreichen?
Vielen Dank im Voraus.
Lösung
In diesen Fällen, die ich in der Regel ein Content im Tag meines Master-Seite hinzuzufügen.
Als Alternative habe ich eine Methode (in der Regel in einer Utility-Klasse oder PageBase Klasse) verwendet, das bringt das Skript Zeichenfolge in einer Liste und speichert sie in der ASP.Net-Kontext wie folgt:
List<string> javaScriptUrls = new List<string>();
url = url.ToLower();
javaScriptUrls = Context.Items[JS_KEY] as List<string>;
if (javaScriptUrls == null)
{
javaScriptUrls = new List<string>();
javaScriptUrls.Add(url);
}
else
{
if (!javaScriptUrls.Contains(url))
javaScriptUrls.Add(url);
}
Context.Items[JS_KEY] = javaScriptUrls;
Dann OnPreRender der Masterpage, es liest diese Liste aus dem Kontext und baut Tags im Header.
List<string> _javaScript = Context.Items[JS_KEY] as List<string>;
foreach (string js in _javaScript)
{
HtmlGenericControl script = new HtmlGenericControl();
script.TagName = "script";
script.Attributes.Add("type", "text/javascript");
if (js.StartsWith("~/"))
script.Attributes.Add("src", head.ResolveUrl(js));
else
script.Attributes.Add("src", js);
head.Controls.Add(script);
AddHeaderLineBreak(head);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow