今天使用Intelligencia.UrlRewriter组件实现无扩展名重写,直接链接地址就成功了,但是如果点击按钮提交表单的时候,却会出现找不到url传递的参数的问题(重写前的url参数),之前听过这件事,这是由于asp.net的机制造成的,因为asp.net提交表单默认是提交到重写前的地址,即真实url,所以会出现这样的错误.但是一直以为Intelligencia.UrlRewriter组件是解决了这个问题了,而且之前也没遇到过这样的问题,郁闷...
后来在同事的代码中找到了解决方案,看以下代码:
<asp:ScriptManager ID="sciptmanager" runat="server" />
<script language="javascript" type="text/javascript">
    Sys.Application.add_load(function(){var form=Sys.WebForms.PageRequestManager.getInstance()._form;form._initialAction=form.action=window.location.href;});
</script>
这段代码的实质就是把默认提交的action重写为重写后的url...
还有一个方案是微软官方网站提供的:ActionLessForm.dll,原理是一样的,不过只是把处理的过程放在服务器,重写form的action方式,相信这样会比较安全...
Posted on 2007-12-01 13:47  (心)Shing Ye  阅读(1125)  评论(1)    收藏  举报