Ich brauche einen Ratschlag.
(Für diejenigen, die dies bereits gelesen haben, habe ich diese Frage stark überarbeitet)asp.net mvc stand alone ascx control wie verbinde ich (css und js) am effizientesten
Ich habe einige asp.net mvc Webseiten entwickelt.
Jede Seite hat einen Master und einige Ascx-Steuerelemente (zwischen 2 - 6) darin eingebettet eine js und CSS-Datei.
Bis jetzt war alles in Ordnung.
Um Modularität, Flexibilität und Testbarkeit zu verbessern, wird von den ascx jetzt erwartet, dass sie als eigenständige Steuerungen arbeiten können.
(Jede Ascx hat auch ihre eigenen CSS- und JS-Dateien in einigen Fällen hat es ein anderes Steuerelement)
Um diese Anforderung zu erfüllen, rufen wir den Controller mit einer Abfragezeichenfolge.
(Unterscheidet sich von der Art und Weise, dass sie von der Seite aufgerufen wird - über Ajax)
Das gerenderte ascx (teilweise) präsentiert im Browser, ohne alle anderen Teile der Originalseite.
In diesem Fall müssen alle relevanten Dateien (z. B. jquery) zum Benutzersteuerelement hinzugefügt werden, damit das partielle korrekt angezeigt (css) und korrekt ausgeführt wird (js/jquery).
Dies widerspricht dem Konzept der Positionierung der Dateien am logischsten Ort (könnte zum Beispiel die Masterseite sein).
Wie kann ich dieses Problem lösen? Beachten Sie, dass dies für jede "control" ascx-Datei relevant ist, die in der Anwendung erstellt wird.
Beispiele:
Ich habe eine Beschreibung von drei Fällen hinzugefügt, dass mein Szenario darstellen wird:
(diese von einer anderen Frage, die ich here fragte kopiert wurde).
Fall 1: In der Seite Fall könnte es sein, dass eine Seite ein paar Partials hat, die mit Ajax geladen werden, während die Seite erstellt wird. Die Teiltöne können erneut mit Hilfe von AJAX gemäß den Benutzeraktionen aufgerufen werden. In diesem Fall betrachte ich sie als Steuerelemente auf einer Seite.
Fall 2: Im Stand-Alone-Fall könnte das Teil im Rahmen eines Tests direkt vom Browser aufgerufen werden. In diesem Fall sehen Sie nur den Teil im Browser.
Fall 3: Im dritten Fall könnte der Teil als Teil eines iframe innerhalb einer Google Chrome-Erweiterung (zum Beispiel) aufgerufen werden. In diesem Fall können Sie die Teilansicht auf einer Seite sehen, die möglicherweise nicht in Ihrer Webanwendung erstellt wurde.
Alle Gedanken werden geschätzt.
Für diejenigen, die feiern - Frohes neues Jahr!
julian, würde ich ‚Senden‘, dass die CSS für das reibungslose Funktionieren der Steuer irrelevant ist. Warum?? weil das css direkt mit dem gesamten Look and Feel der fraglichen Zielseite verbunden ist. Daher sollte meiner Meinung nach das CSS (sofern es sich nicht um jquery-Selektoren handelt) auf einer höheren Ebene abstrahiert und daher vollständig von den fraglichen ascx-Kontrollen isoliert werden. Ich mag mich irren, aber das fühlt sich für mich "richtiger" an - d. h. css wird von der Site gesteuert und nicht von der Funktionalität der Kontrolle (außer wo die CSS jquery-getriebene Klassen- oder ID-Selektoren sind). –
lief die Zeichen aus, um abzuschließen :). Die Verwendung der oben genannten Disziplin bedeutet, dass sowohl Admin- als auch Public-Face-Kontrollen geteilt werden können, auch wenn das Styling auf beiden Seiten in Konflikt steht. –
@jim - einige unserer Steuerelemente enthalten in ihnen versteckte Elemente (mit CSS) Wenn das CSS auf Site-Ebene ist, werden die versteckten Felder auf dem Steuerelement angezeigt, wenn es alleine gerendert wird. Außerdem kann der Benutzer das Aussehen und Verhalten dieses Steuerelements nicht überprüfen, wenn kein CSS vorhanden ist. –