我正在重寫URL Urlrewriting.net,並且遇到了似乎是一個常見問題,但我似乎可以解決它。我將介紹一個簡化的案例。Urlrewriting.net IsPostBack總是虛假
URL重寫與規則可以正常使用:
<urlrewritingnet rewriteOnlyVirtualUrls="true" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
<rewrites>
<add name="catalog" virtualUrl="^~/catalog/(.*)/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/catalog.aspx?cid=$1&c=$2" ignoreCase="true"/>
</rewrites>
</urlrewritingnet>
在網頁上我有2 ASP DataList控件:按鈕內。點擊後,頁面刷新但不做任何事情。
我跟着ScottGu's article暗示表單控件適配器重寫表單的操作以匹配重寫的URL。
頁面URL在瀏覽器:http://...../dev/catalog/13/Music.aspx
<form name="aspnetForm" method="post" action="/dev/catalog/13/Music.aspx" id="aspnetForm">
現在我看到的表單操作正確的URL,並在調試的時候,我可以看到的頁面加載事件觸發。
現在的問題是,每次頁面加載Page.IsPostback爲false時,都會導致頁面重新綁定DataList,因此忽略按鈕應該觸發的ItemCommand。
if (!Page.IsPostBack)
PopulateControls();
我使用.NET 3.5 SP1,有一個ScriptManager母版頁上,但此頁面上沒有的UpdatePanel。我也嘗試重置Form.Action屬性並繞過ScottGu的解決方案,獲得相同的結果。如果我直接轉到頁面URL而不使用重寫器,那麼一切正常。
我錯過了什麼?
有什麼建議嗎?我仍然卡住。謝謝! – Sammy 2010-09-30 15:43:27