Kurdami modulį Orchard, galime pridėti tam tikrų stilių ar scenarijų, kurie yra būdingi šiam moduliui. Tinklalapio optimizavimo požiūriu, dažnai turime pridėti stilių prie puslapio antraštės (<head>prie etiketės), o scenarijus norime pridėti puslapio apačioje (šalia</body> etiketės). Tačiau rodinio failas, atitinkantis mūsų sukurtą modulį, iš tikrųjų yra PartialView, ir jei pridėsime stiliaus ar scenarijaus nuorodų žymas tiesiai į rodinį, norimo efekto nepasieksime. Taigi, kaip ši funkcija tvarkoma "Orchard"?
MVC rodinio variklio WebViewPage klasė buvo perrašyta Orchard sistemoje, o scrip{filter}t ir Style atributai buvo pridėti stiliams ir scenarijams pristatyti. Tai leidžia mums naudoti šias dvi savybes tiesiai rodinyje, kad iškviestume atitinkamą metodą.
Vidinių stilių ir scenarijų naudojimas rodiniuose
Jei reikia parašyti stiliaus apibrėžimą arba scenarijaus apibrėžimą tiesiai į puslapį. Tada galime rašyti stilius ir scenarijus į konkrečias sritis, apibrėžtas sodo tema. Pavyzdžiui, galite parašyti scenarijų į apatinę puslapio sritį naudodami šį metodą: @using (scrip{filter}t.Foot())
{ <scrip{filter}t type="text/javascrip{filter}t"> funkcija JsSub() { Scenarijus galima parašyti čia } </scrip{filter}t>
} Orchard atributas Style neturi Head metodo, galbūt Orchard nenori, kad mes naudotume vidinius stilius. Taigi įdėkime stilių į išorinį stiliaus failą. Išorinių stilių ir scenarijų naudojimas rodinyje
Jei norime iškviesti stilius ir scenarijus moduliuose. Tada galiu naudoti scrip{filter}t ir Style atributų Include metodą, pvz.: @{ Style.Include("xxx.css"); scrip{filter}t.Include("xxx.js");
} Tokiu būdu, atvaizduodamas puslapį, orchard automatiškai ieškos atitinkamo stiliaus failo šio modulio kataloge Stiliai ir sugeneruos stiliaus nuorodos žymą, kurią rašys puslapio viršuje. Jis taip pat ieškos atitinkamo scenarijaus failo scrip{filter}ts kataloge ir sugeneruos scenarijaus nuorodos žymą, parašytą puslapio apačioje. Naudokite išteklių failus
Be dviejų aukščiau aprašytų metodų, "Orchard" taip pat teikia išteklių failo manifesto funkciją. Man tereikia sukurti ResourceManifest.cs failą modulio šakniniame kataloge ir įdiegti IResourceManifestProvider sąsają. Šiame išteklių manifesto faile galime turėti turtingesnes stilių ir scenarijų failų nuorodų funkcijas. Pavyzdžiui, nuorodos į scenarijaus failą apibrėžimas gali būti naudojamas su: public void BuildManifests(ResourceManifestBuilder builder) { statybininkas. Pridėti (). Definescrip{filter}t("jQuery"). SetUrl("jquery-1.5.2.min.js")
} Tokiu būdu, nurodydami rodinį, galite naudoti: @{ scrip{filter}t.Require("jQuery");
} Be to, apibrėžus, kiti moduliai taip pat gali naudoti šį šaltinį, o kai puslapyje yra keli peržiūros failai, nurodantys šį šaltinį, nebus pasikartojančių nuorodų, o Orchard sugeneruos tik žymą, nurodančią šį scenarijų. Tas pats pasakytina ir apie stilių apibrėžimą: statybininkas. Pridėti (). DefineStyle ("jQueryUI_Orchard"). SetUrl("jquery-ui-1.8.11.custom.css"); Naudojant: @{ Style.Require("jQueryUI_Orchard ");
} Išteklių failų sąrašas taip pat turi priklausomybės nustatymo funkciją. Kai scenarijaus išteklius turi priklausyti nuo kitų scenarijaus išteklių, galima naudoti šį apibrėžimą: statybininkas. Pridėti (). Definescrip{filter}t("jQueryUI_Core"). SetUrl("jquery.ui.core.min.js"). SetDependencies("jQuery"); Tokiu būdu mes naudojame tik jQueryUI_Core scenarijų rodinyje, ir jis automatiškai importuos jquery scenarijų, nuo kurio jis taip pat priklauso. Jei vienu metu pasikliaujate keliais scenarijais, galite naudoti kablelius, kad atskirtumėte kelis priklausomus išteklius, pvz.: statybininkas. Pridėti (). Definescrip{filter}t("jQueryUI_Draggable"). SetUrl("jquery.ui.draggable.min.js")SetDependencies("jQueryUI_Core", "jQueryUI_Widget", "jQueryUI_Mouse"); Tačiau "Orchard" dar nepalaiko scenarijaus išteklių, priklausančių nuo stiliaus išteklių, funkcijos, o tai šiek tiek gaila, tiesą sakant, kai kuriuos js reikia naudoti tuo pačiu metu kaip stiliaus failus, pvz., "jQueryUI" papildinį. Be to, išteklių inventoriaus failas taip pat gali nustatyti skirtingus scenarijaus failus derinimo režimui ir išleidimo režimui, taip pat gali apibrėžti atitinkamą išteklių versiją, pvz.: statybininkas. Pridėti (). Definescrip{filter}t("jQuery"). SetUrl("jquery-1.5.2.min.js", "jquery-1.5.2.js"). SetVersion ("1.5.2");
Orchard.jQuery modulis, pateikiamas kartu su Orchard, yra vienas iš tokių modulių, apibrėžiančių jQueryUI papildinį. Jei mums reikia naudoti šį įskiepį, galime pažvelgti į js įskiepį, apibrėžtą šiame manifesto faile, ir nurodyti jį savo modulyje. Tačiau verta paminėti, kad jei mums reikia nurodyti turinį Orchard.jQuery modulyje, modulio manifesto faile turime nustatyti priklausomybę Orchard.jQuery modulį, kad įjungus mūsų modulį Orchard.jQuery modulis būtų įjungtas sinchroniškai, kad būtų užtikrinta, jog mūsų nurodyti ištekliai gali būti iškviesti įprastai.
jquery nurodomas naudojant scrip{filter}t.Require("jQuery"). AtHead();
|