【问题标题】:asp.net site not working from default pageasp.net 站点无法从默认页面运行
【发布时间】:2012-06-15 14:02:47
【问题描述】:

我有一个运行良好的 .net 站点,只要您在页面上指定包含 .aspx 扩展名的完整文件名。当您尝试在没有指定 default.aspx 的情况下运行默认页面时,不会触发回发。

例如

http://www.site.com/(回发不起作用)

http://www.site.com/default.aspx(回发作品)

http://www.site.com/directory(回发不起作用)

http://www.site.com/directory/default.aspx(回发作品)

我以前从未在 .net 网站上遇到过这个问题,所以很难理解问题所在。我已经检查了最基本的东西,即确保 default.aspx 是默认页面等。检查我的 web.config 文件与正常工作的网站等。

我仍然不明白为什么会发生这种行为。有什么想法吗?

【问题讨论】:

  • 请出示您的表格。您是否设置了action 属性?
  • 网站是否在 IIS 或 Visual Studio 集成 Web 服务器上运行?
  • 这里描述了一个类似的问题:stackoverflow.com/questions/7228344/…。还描述了一些解决方案建议。看看吧:)。

标签: asp.net .net postback


【解决方案1】:

卢卡斯,感谢您分享这个答案。

在 URL 中未明确提供 default.aspx 的情况下,表单操作标记确实为空。

将以下代码添加到 global.asax 已解决问题:

void Application_BeginRequest(object sender, EventArgs e)
{
    var app = (HttpApplication)sender;
    if (app.Context.Request.Url.LocalPath.EndsWith("/"))
    {
    app.Context.RewritePath(
             string.Concat(app.Context.Request.Url.LocalPath, "default.aspx"));
    }
}

【讨论】:

  • 很高兴您找到了满意的解决方案:)。
【解决方案2】:

我在一个站点上遇到了这个问题,并将应用程序池类型更改为经典。这解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2022-06-15
    • 2016-02-26
    相关资源
    最近更新 更多