C# 在IIS中添加应用程序后,aspx页面不工作

C# 在IIS中添加应用程序后,aspx页面不工作,c#,asp.net,iis,C#,Asp.net,Iis,我有一个网络应用程序。在我的主页中,我有几个链接按钮,如下所示 <asp:LinkButton ID="link1" runat="server" OnClick="linkAge_Click">Age</asp:LinkButton> <asp:LinkButton ID="link2" runat="server" OnClick="linkName_Click">Name</asp:LinkButton> 在IIS中,我添加了名为“T

我有一个网络应用程序。在我的主页中,我有几个链接按钮,如下所示

<asp:LinkButton ID="link1" runat="server" OnClick="linkAge_Click">Age</asp:LinkButton>

 <asp:LinkButton ID="link2" runat="server"  OnClick="linkName_Click">Name</asp:LinkButton>
在IIS中,我添加了名为“Test”的应用程序,然后在其中添加了所有代码

当我浏览时,我进入母版页

当我点击链接“年龄”时,url变为

我原以为是这样的

我做错了什么?我可以在不使用任何代码更改的情况下实现这一点。

尝试使用(结尾带斜杠)链接到浏览器。

尝试使用(结尾带斜杠)链接到浏览器。

您需要添加一个波浪号(~)以获取与应用程序根相关的URL:

Response.Redirect("~/Age/");
顺便说一句:为什么你需要把重定向放在帖子后面?您可以使用
代替您需要添加一个波浪号(~)来获取相对于应用程序根的URL:

Response.Redirect("~/Age/");

顺便说一句:为什么你需要把重定向放在帖子后面?您可以使用
代替,就像我们在mvc中所做的那样,从root-Url.Content(“~\Action\”)获取路径

以网页形式—

    protected void linkAge_Click(object sender, EventArgs e)
    {
        Response.Redirect(Server.MapPath("~/Age/"));
    }

我想你应该这样想。

就像我们在mvc中这样做是为了从root-Url.Content(“~\Action\”)获取路径

以网页形式—

    protected void linkAge_Click(object sender, EventArgs e)
    {
        Response.Redirect(Server.MapPath("~/Age/"));
    }

我想你应该这样想。

因为你只使用了
/Age/
路径,没有任何东西表明你使用的是相对路径。对于IIS管理的代码,您可以使用
~/Age/which
来表示您打算相对于
测试

转到
Age
,因为您只使用
/Age/
路径,而不使用任何指示您正在使用相对路径。对于IIS管理的代码,您可以使用
~/Age/which
来表示您打算相对于
Test

转到
Age
,它不会将“Test”视为您的母版页。尝试将重定向代码编辑到“/Test/Age/”并查看结果。@Apollo当然可以,但正如我所说,我不希望更改代码,我看到了。还有其他方法可以执行您要求的操作,但它们需要在代码中进行更改。我会四处寻找其他的选择。如果“Test”文件夹不在根目录下,则可能会发生这种混淆。你检查过了吗?最好的方法是将路由规则添加到你的global.asax页面,但它不会将“Test”作为你的母版页。尝试将重定向代码编辑到“/Test/Age/”并查看结果。@Apollo当然可以,但正如我所说,我不希望更改代码,我看到了。还有其他方法可以执行您要求的操作,但它们需要在代码中进行更改。我会四处寻找其他的选择。如果“Test”文件夹不在根目录下,则可能会发生这种混淆。检查了吗?最好的方法是将路由规则添加到global.asax页面,仅当您在Windows Server上时查看:将应用程序部署为网站,而不是Web应用程序我不能将网站放在其他网站下,因此我添加了应用程序仅当您在Windows Server上时:将应用程序部署为网站,而不是一个网络应用程序我不能有另一个网站下的网站,因此我添加了应用程序