Asp.Net链接出现问题

本文关键字:问题 链接 Net Asp | 更新日期: 2023-09-27 18:22:24

我是ASP.NET中web开发的新手,我似乎遇到了链接问题。这里有几个问题:

我的主页文件中有这个:

<div class="title">            
                <a href="~/Default.aspx">Backyard Cures</a>
            </div>

当用户点击标题时,我希望他/她返回主页。然而,这似乎并不奏效。相反,当我在登录或注册页面时,它会将我发送回登录页面。当我在default.aspx中时,它会将我发送到localhost/~/default.aspx。~不是根吗?

我还想知道如何使我的网址更加用户友好。我不希望Default.aspx出现在主页等中。

Asp.Net链接出现问题

锚点标记(<a>)是标准HTML标记,波浪号字符(~)特定于.NET

使用波浪号字符时应使用<asp:HyperLink runat="server" NavigateUrl="~/Default.aspx" Text="Backyard Cures"></asp:HyperLink>

此外,如果您的母版页或内容页或其使用的资源受到身份验证的保护,您将被重定向到登录页。

为了使链接更可读,您可以使用下面的一个或多个选项:

  1. 来自nuget的友好Urls包:http://www.nuget.org/packages/Microsoft.Aspnet.FriendlyUrls/
  2. 切换到MVC项目而不是Web窗体项目
  3. 使用自定义路由:http://msdn.microsoft.com/en-us/library/vstudio/cc668201%28v=vs.100%29.aspx

更改为HyperLink以作为Web控件运行:

<asp:HyperLink NavigateUrl="~/BusinessOrderInfo/page.aspx" Text="Whatever" runat="server" />

或者,在服务器端运行锚点作为HTML控件:

<a href="~/BusinessOrderInfo/page.aspx" runat="server" >

或者,使用页面。ResolveUrl:

<a href="<%= Page.ResolveUrl("~/BusinessOrderInfo/page.aspx") %>">...</a>

为了使url更漂亮

对于web表单,url指向磁盘上的文件,MVC指向控制器操作。如果你使用的是网络表单,你会想要使用URL重写。Scott Guthrie有一篇关于URL重写的好文章。