我有一个应用程序,如果我不应用重写规则,它就像一个魅力。 当我应用规则(即使它给出相同的地址)页面方法无法访问。我在js文件中调用pagemethod。它的行为就像刷新页面一样,只有page_load事件触发。 Page.IsPostback总是返回false。
顺便说一句,如果它是相关的,我正在使用母版页。
网络配置,urlrewrite规则
<rewriter>
<rewrite url="~/(.+).aspx" to="~/Forms/$1.aspx" />
</rewriter>
Http Modules
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
试图访问页面方法的Js函数
<script>
PageMethods.displayPages(a, CallSuccess, CallFailed);
</script>
PageMethod的
[System.Web.Services.WebMethod]
public static string displayPages(string a)
{
response.write(a);
}
这些是我尝试过但没有用的:
1-添加了Pagemethods.set_path(“/ forms / Default.aspx”);到Js
2-向web.config添加了相同的规则(即使不起作用)
<rewriter>
<rewrite url="~/Forms/(.+).aspx" to="~/Forms/$1.aspx" />
</rewriter>
3-在母版页的Page_load
下添加了代码form1.Action = Context.Request.RawUrl;
任何建议都会很棒。谢谢你的帮助。