Asp.net 正在查找全局变量以定义根url

Asp.net 正在查找全局变量以定义根url,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我习惯将URL硬编码到HTML中: ...<a href="www.mySite.com/login">logon to your account.</a> 。。。 在开发过程中,当我想针对特定的web应用程序版本时,我将全局搜索/用类似“myDev.mySite”的内容替换“www.mySite” 由于这种做法已经成为习惯,我无法清楚地记得是否有一个非常好的理由,我不使用相对地址,或者如果我只是一个顽固的哑巴 我认为.net与我们定义连接字符串的方式类似,我可以将

我习惯将URL硬编码到HTML中:

...<a href="www.mySite.com/login">logon to your account.</a> 
。。。
在开发过程中,当我想针对特定的web应用程序版本时,我将全局搜索/用类似“myDev.mySite”的内容替换“www.mySite”

由于这种做法已经成为习惯,我无法清楚地记得是否有一个非常好的理由,我不使用相对地址,或者如果我只是一个顽固的哑巴

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

基本上就是你想要的

几乎完全符合您的要求

在ASP.NET MVC中,使用

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

它将自动生成有效的URL。

在ASP.NET MVC中,使用

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


它将自动生成有效的URL。

Jan的答案最适合ASP.NET MVC,因为您可以独立更改URL映射到视图的方式。对于任何ASP.NET站点,更通用的解决方案是使用tilde。比如说,

Page.ResolveClientUrl("~/My/Path.aspx")
将自动将~解析为web应用程序根。或者如果您使用ASP.NET控件

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


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

Jan的答案最适合ASP.NET MVC,因为您可以独立更改URL映射到视图的方式。对于任何ASP.NET站点,更通用的解决方案是使用tilde。比如说,

Page.ResolveClientUrl("~/My/Path.aspx")
将自动将~解析为web应用程序根。或者如果您使用ASP.NET控件

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

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