我有一个应用程序,如果我不应用重写规则,它就像一个魅力。当我应用规则(即使它给出相同的地址)时,pagemethod 无法访问。我在 js 文件中调用 pagemethod。它的行为类似于刷新页面并且仅触发 page_load 事件。Page.IsPostback 总是返回 false。
顺便说一句,如果它是相关的,我正在使用母版页。
Web 配置,urlrewrite 规则
<rewriter>
<rewrite url="~/(.+).aspx" to="~/Forms/$1.aspx" />
</rewriter>
Http 模块
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
试图到达pagemethods的js函数
<script>
PageMethods.displayPages(a, CallSuccess, CallFailed);
</script>
页面方法
[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;
任何建议都会很棒。谢谢你的帮助。