2012-06-12 41 views
2

我有一個.net網站設置運行良好,只要您指定完整的文件名,包括頁面上的.aspx擴展名。當你嘗試運行一個沒有指定default.aspx的默認頁面時,回發將不會觸發。asp.net網站從默認頁面不工作

例如

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

請出示您的形式。你設置了「動作」屬性嗎? – jrummell

+0

網站是運行在IIS還是Visual Studio集成web服務器上? –

+4

類似的問題在這裏描述:http://stackoverflow.com/questions/7228344/postback-doesnt-work-with-aspx-page-as-default-document。還有一些解決方案的建議。看看它:)。 –

回答

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")); 
    } 
} 
+0

我很高興你已經找到了滿意的解決方案:)。 –