我注意到一些奇怪的东西。 所以通常在ASP.NET中如果你在一个url的开头放置一个〜,这个符号代表了网站的根目录。
它适用于我在.aspx页面上的所有链接,除了出于某种原因的链接,指向位于Account文件夹中的页面,其中包含Identity的模板页面。
所以点击此链接会给我一个404错误,asp.net通知我所请求的网址是
/~/Account/Login.aspx
显然它在这种情况下不起作用,因为文件系统中没有名为〜的文件夹。但为什么它不起作用?
现在如果我删除〜/符号,链接将工作ONCE,但如果点击两次,浏览器将尝试导航到/Account/Account/Login.aspx,这当然会引发另一个404错误。
每次用户点击该链接时,我该怎么做才能使他进入Login.aspx页面?
答案 0 :(得分:2)
根据您在评论中提供的代码的屏幕截图,您的实际代码为:
<a href="~Account/Login.aspx">Login</a>
就网址而言,此处没有~
路径。有~Account
路径。一言一行。这当然不存在。
您可以使用~
路径来指示应用程序的根目录,但您需要将其保留为自己的路径:
<a href="~/Account/Login.aspx">Login</a>
此外,您可能需要明确告诉框架为此应用服务器端处理:
<a href="~/Account/Login.aspx" runat="server">Login</a>
因为如果它按原样将内容发送到浏览器,那么浏览器就不知道如何处理~
路径,这只是有意义的服务器端。