【问题标题】:aspx pages not working after adding application in IIS在 IIS 中添加应用程序后,aspx 页面无法正常工作
【发布时间】:2016-03-04 08:13:11
【问题描述】:

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

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

 <asp:LinkButton ID="link2" runat="server"  OnClick="linkName_Click">Name</asp:LinkButton>

在我的 Visual Studio 中,我有一个名为 Age 和 Name 的单独文件夹,在这些文件夹下有 default.aspx。

链接按钮的点击事件我有这个代码

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

 protected void linkName_Click(object sender, EventArgs e)
    {
       Response.Redirect("/Name/");
    }

在 IIS 中,我添加了名为“Test”的应用程序,然后在其中添加了所有代码

当我浏览时,我以http://localhost:80/Test 身份进入母版页

当我点击链接“年龄”时,网址更改为http://localhost:80/Age

我以为是http://localhost:80/Test/Age

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

【问题讨论】:

  • 它没有将“测试”视为您的母版页。尝试将重定向代码编辑到“/Test/Age/”并查看结果。
  • @Apollo offcourse 可以,但正如我所说,我不想更改代码
  • 我明白了。还有其他方法可以执行您所要求的,但它们需要更改代码。我会四处寻找其他选择。如果“Test”文件夹不在根目录下,可能会发生这种混乱。你检查了吗?
  • 最好的方法是将路由规则添加到您的 global.asax 页面,请参阅msdn.microsoft.com/en-us/library/cc668177.aspx

标签: c# asp.net iis


【解决方案1】:

尝试使用http://localhost/Test/(末尾带有斜线)链接到您的浏览器。

【讨论】:

    【解决方案2】:

    您需要添加波浪号 (~) 以获取相对于应用程序根目录的 URL:

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

    顺便说一句:为什么您需要在回发后进行重定向?你可以改用&lt;asp:HyperLink&gt;

    【讨论】:

    • 仅当您在 Windows Server 上时:将您的应用程序部署为网站,而不是 Web 应用程序
    • 我不能在另一个网站下拥有网站,因此我添加了应用程序
    【解决方案3】:

    就像我们在 mvc 中这样做以从根目录获取路径 - Url.Content("~\Action\")

    以网络形式 -

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

    我想你必须这样想。

    【讨论】:

      【解决方案4】:

      由于您只使用/Age/ 路径,没有任何迹象表明您使用的是相对路径。对于由 IIS 管理的代码,您将使用 ~/Age/Whatever 表示您打算转到相对于 TestAge

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多