Zanima me, kaj je poanta ~ znaka v ASP.NET-u. Nekak sem vedno mislil, da to vedno pomeni root direktorija, vendar zadeve ne deluje tako. Imam recimo en js file:
root_projekta/Razno/Scripts/Script.js
In ko dam v JS stavek : <script src="~/Razno/Scr....., mi tega file na najde, če pa dam <script src="../Razno/Scr....., potem pa mi ga.
File se nahaja znotraj ene mape, glede na root projekta.
URL je tak kot ga nastavi Visual Studio: localhost:port/ime_projekta/to_je_root_projekta.
Sedaj me zanima, kaj pomeni ~ znak.
Predvidevam, da do napake pride zaradi tega ker se projekt ne izvaja na localhostu:portu, ampak je zraven še direktorij projekta. Kako dobim iz URL-ja, kaj je root, ali na nek drug način. To bi rabil dobiti v eni svojih control.
bojanv - ponedeljek, 22. januar 2007
Seveda lahko to dosežeš Lahko narediš svoj objekt pa deduješ, lahko nardiš svojo metodo pa uporabiš v svojem objektu, itd. Implementacij je malo morje, katera pa je najbolj primerna je pa odvisno od tebe.......
fora - nedelja, 21. januar 2007
Krasno. Vse lepo in prav, vse prebral, vse razumem. Ali pač ne.To je neka metoda, ki jo lahko kličeš samo znotrej System.Web.UI.Control.Kaj pa če ta tvoja control-a vsebuje nek objekt, ta pa vsebuje še en drug objekt, in tam noter bi ti rabil ResolveUrl, ker tist tm izriše sliko. In sedaj nočem iz tega glavnega objekta klicat resolveUrl na vseh mestih, kjer bi bilo to pomembno in pisat uso to kodo. Rad bi da tisti pod_pod_objekt sam poskrbi zato.Lahko to dosežem?
bojanv - sobota, 20. januar 2007
Ideja tilde (~) je v tem, da pomeni root direktorija samo za SERVER kontrole in v SERVER kodi.Recimo primer:<asp:Image id="nekaj" runat="server" ImageUrl="~/Images/someimage.gif" /> bo pobral root od aplikacije, šel v Images mapo ter priredil link na image-u do slike someimage.gif. Če bi izvedel kaj takega z recimo <img src="~/Images/someimage.gif" /> pač ne bo prikazal slike oziroma je tista default slikca al pa alternate text.Če boš izvajal v svoji kontroli na serverju, potem izrabi ta operator za root. Lahko root dobiš s pomočjo MapPath funkcije. string rootPath = Server.MapPath("~") Da ne boš imel probleme pa se poslužuj ResolveUrl funkcije.
spirit1 - sobota, 20. januar 2007
vse kar si zelis vedeti in najbrz tudi kaj kar si ne http://www.informit.com/articles/article.asp?p=101145&seqNum=2&rl=1