我有一个.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文件对正常工作的网站等。
我仍然不明白为什么会出现这种情况。有什么想法吗?
答案 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)
我在一个站点上遇到此问题,并将“应用程序池”类型更改为“经典”。这解决了问题。