我正在重写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