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出现在主页等中。
锚点标记(<a>
)是标准HTML标记,波浪号字符(~
)特定于.NET
使用波浪号字符时应使用<asp:HyperLink runat="server" NavigateUrl="~/Default.aspx" Text="Backyard Cures"></asp:HyperLink>
。
此外,如果您的母版页或内容页或其使用的资源受到身份验证的保护,您将被重定向到登录页。
为了使链接更可读,您可以使用下面的一个或多个选项:
- 来自nuget的友好Urls包:http://www.nuget.org/packages/Microsoft.Aspnet.FriendlyUrls/
- 切换到MVC项目而不是Web窗体项目
- 使用自定义路由: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重写的好文章。