我创建了一个非常小的网络应用。我想使用干净的网址,但如果我使用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 FUNCTIONfunction 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;
}
最后这是 REWRITING RULE
<rewriter>
<rewrite url="~/(.+).aspx" to="~/uso/$1.aspx" processing ="stop"/>
</rewriter>
任何帮助将不胜感激。
答案 0 :(得分:1)
不确定您使用的是什么重写引擎,请确保查询字符串也会转移到重写的URL。如果PageMethods.messi
正在使用GET动词发送请求,则通知其回发的参数位于查询字符串中。