求全局变量来定义根URL

时间:2009-10-26 23:41:02

标签: asp.net asp.net-mvc

我习惯将网址硬编码到我的HTML中:

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

在开发期间,当我想要定位特定的网络应用版本时,我将使用类似'myDev.mySite'的全局搜索/替换'www.mySite'。

由于这种习惯已经变得习惯了,我无法清楚地记得,如果有一个堕落的好理由我不使用相对地址,或者我只是持续愚蠢。

我想认为.net与我们定义连接字符串的方式类似,我可以将根URL定义为全局变量,但到目前为止还没有找到该功能。

3 个答案:

答案 0 :(得分:3)

在ASP.NET MVC中,使用

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

它会自动生成有效的网址。

答案 1 :(得分:0)

<base href>几乎完全符合你的要求。

http://www.w3schools.com/TAGS/tag_base.asp

答案 2 :(得分:0)

Jan的答案是ASP.NET MVC的最佳答案,因为您可以独立更改URL映射到视图的方式。任何ASP.NET站点的更通用的解决方案是使用波浪号。例如,

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

将自动解析〜到Web应用程序根目录。或者,如果您使用ASP.NET控件,

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

这将创建一个超链接,其路径自动解析为站点根目录。