2009-10-26 6 views
0

J'ai l'habitude de hardcoding URL dans mon HTML:la recherche variable globale pour définir la racine url

...<a href="www.mySite.com/login">logon to your account.</a> 

Au cours du développement quand je veux cibler une version web-app spécifique je recherche globale/remplacer le « www .mySite 'avec quelque chose comme' myDev.mySite '.

Depuis que cette pratique est devenue habituelle, je ne peux pas me rappeler clairement s'il y a une bonne raison pour laquelle je n'utilise pas d'adresse relative ou si je suis tout simplement stupide.

Je voudrais penser que .net a quelque chose de similaire à la façon dont nous définissons les chaînes de connexion que je pourrais définir une URL racine comme une variable globale, mais jusqu'à présent, n'a pas trouvé la fonctionnalité.

Répondre

3

Dans ASP.NET MVC, utilisez

<a href='<%=Url.Action("Login")%>'>login</a> 

il génère automatiquement l'URL qui fonctionne.

0

La réponse de Jan est la meilleure pour ASP.NET MVC, puisque vous pouvez modifier indépendamment la façon dont les URL sont mappées aux vues. Une solution plus générale pour tout site ASP.NET consiste à utiliser le tilde. Par exemple,

Page.ResolveClientUrl("~/My/Path.aspx") 

Permet de résoudre automatiquement la racine ~ de l'application Web. Ou si vous utilisez des contrôles ASP.NET,

<asp:HyperLink runat="server" NavigateUrl="~/My/Path.aspx" Text="Link Text"/> 

Cela créera un lien hypertexte avec le chemin automatiquement résolu à la racine du site.

Questions connexes