asp.net站点无法在默认页面上运行

时间:2012-06-12 16:33:54

标签: asp.net .net postback

我有一个.net站点设置,只要您在页面上指定包括.aspx扩展名的完整文件名就可以正常运行。当您尝试运行没有指定default.aspx的默认页面时,将不会触发回发。

e.g。

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文件对正常工作的网站等。

我仍然不明白为什么会出现这种情况。有什么想法吗?

2 个答案:

答案 0 :(得分: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"));
    }
}

答案 1 :(得分:0)

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