第一个链接到内部页面工作。后续尝试导致ASP.net 2.0中出现Http 404错误
我在VS2008中使用ASP.NET2.0,框架为3.5,VB.NETCodeBehind 我计划建立一个网站,在左边有一个固定的菜单,在一个固定的位置有一个树状视图。右边的第二个分区是内容。我制作了一个小的测试应用程序,看看这个概念是否可以使用母版/内容页 我想把菜单硬编码在一个地方。母版页可以很好地实现这一点。这样做的目的是,随着网站的发展,不必在单独的页面中编辑菜单 测试应用程序有一个母版页和一个内容页。这就是我想如何建立实际的网站。内容页是启动页。母版页包含菜单项。每个菜单项都链接到Contents.aspx,但附加了唯一的查询字符串或/关键字。内容页codebehind Load事件读取Request.Url.AbsoluteUri。然后,根据附加的查询字符串或/关键字,提取内容数据并将其推送到Contents.aspx页面上的空文本控件。在这个测试应用程序中,为了简单起见,我只需推送纯文本 在我重新单击一个链接之前,这一切都很好。这会导致HTTP404错误。我曾尝试在主控和内容加载事件的顶部使用Response.tryskipiiscustomerors=True,但没有任何帮助。我可以点击一个菜单链接几次,页面将继续重新加载。但是在链接之间来回移动会导致错误 当错误发生时,它发生在Contents.aspx加载事件开始之前 我希望能够以一种能够在asp.net主机站点上工作的方式修复此问题 MasterPage.master:第一个链接到内部页面工作。后续尝试导致ASP.net 2.0中出现Http 404错误,asp.net,http,http-status-code-404,Asp.net,Http,Http Status Code 404,我在VS2008中使用ASP.NET2.0,框架为3.5,VB.NETCodeBehind 我计划建立一个网站,在左边有一个固定的菜单,在一个固定的位置有一个树状视图。右边的第二个分区是内容。我制作了一个小的测试应用程序,看看这个概念是否可以使用母版/内容页 我想把菜单硬编码在一个地方。母版页可以很好地实现这一点。这样做的目的是,随着网站的发展,不必在单独的页面中编辑菜单 测试应用程序有一个母版页和一个内容页。这就是我想如何建立实际的网站。内容页是启动页。母版页包含菜单项。每个菜单项都链接到Co
<%@ Master Language="VB" CodeFile="MasterPage.master.vb"
Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div style="position:fixed; top:0px; left:0px; width:300px; height:100%;
background-color:#ddd; padding-top:10px; padding-left:10px" >
<a href="Contents.aspx">Home</a><br />
<a href="Contents.aspx?p=ABCD" >ABCD page</a><br />
<a href="Contents.aspx/?p=WXYZ" >WXYZ page</a><br />
</div>
<div style="position:absolute; top:0px; left:310px; width:40%;
height:100%; background-color:#eee; padding-top:10px; padding-left:10px" >
<asp:ContentPlaceHolder id="MainContent" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
我能够通过在单个aspx表单中使用相同的概念而不是Master/Content来解决这个问题。菜单现在是单一形式,代码隐藏为内容提取数据。我不知道是什么导致了HTTP404错误,但使用单个aspx表单解决了它。此外,URL必须包含查询字符串,格式为www.example.com?s=values,而不是www.example.com/keyword1-keyword2。后一种语法也抛出了404错误
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Contents.aspx.vb"
Inherits="Contents" MasterPageFile ="~/MasterPage.master" title="Contents"%>
<asp:Content ID="Contents" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:Literal ID="Contents_Main" runat="server">
</asp:Literal>
</asp:Content>
Partial Class Contents
Inherits System.Web.UI.Page
Public Sub Contents_Load(ByVal sender As Object, ByVal e As EventArgs)
Handles Me.Load
Try
Dim url As System.Uri = Request.Url
Select Case True
Case url.AbsoluteUri.EndsWith("?p=ABCD")
Me.Contents_Main.Text = "content for ABCD"
Case url.AbsoluteUri.EndsWith("?p=WXYZ")
Me.Contents_Main.Text = "content for WXYZ"
Case Else
Me.Contents_Main.Text = "Landing Page"
End Select
Catch ex As Exception
Me.Contents_Main.Text = ex.Message & ex.StackTrace
End Try
End Sub
End Class