0

我创建了一个非常小的网络应用程序。我想使用干净的 url,但如果我使用 urlrewriting 我无法访问 PageMethods。我正在尝试从 JavaScript 文件访问 PageMethods,但 isPostBack 返回 false 并且它只是刷新页面。

如果我不使用 urlrewriting 它可以完美地工作并将我想要的任何内容写入 writeHere div。

可能是什么问题?

这是调用js函数的ANCHOR

Test <a href="#" onclick = "testjs('test');">HERE</a>. 
<div id = "writeHere"></div>

这是调用 PageMethods的JS FUNCTION

function testjs(test) {
document.getElementById("writeHere").innerHTML = "";

PageMethods.messi(test,CallSuccess,CallFailed);

function CallSuccess(res) {
    document.getElementById("writeHere").innerHTML = res.toString();
}

function CallFailed(res) {
   document.getElementById('writeHere').innerHTML = "ERROR";
   }
}

这里是aspx文件的MESSI METHOD

[System.Web.Services.WebMethod]
public static string messi(string test)
{
    return test; 
}

最后这是重写规则

<rewriter>
<rewrite url="~/(.+).aspx" to="~/uso/$1.aspx" processing ="stop"/>
</rewriter>

任何帮助,将不胜感激。

4

1 回答 1

1

不确定您使用的是什么重写引擎,请确保查询字符串也被传递到重写的 URL。如果PageMethods.messi使用 GET 动词发送请求,则通知它是回发的参数在查询字符串中。

于 2012-12-05T08:44:27.557 回答