2

只要您在页面上指定包括 .aspx 扩展名的完整文件名,我就有一个运行良好的 .net 站点。当您尝试在没有指定 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 文件与一个正常工作的网站等。

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

4

2 回答 2

2

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

实际上,在 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"));
    }
}
于 2012-06-12T16:55:42.497 回答
1

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

于 2020-08-25T15:24:04.313 回答