1

我有一个应用程序,如果我不应用重写规则,它就像一个魅力。当我应用规则(即使它给出相同的地址)时,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;

任何建议都会很棒。谢谢你的帮助。

4

0 回答 0