WebMethod(有时)返回整个网站
我有一个接受一个参数的 WebMethod。
当我向不带任何参数的 webmethod 发送请求时,一切正常,但是当我向同一方法提供参数时,它会返回整个站点而不是字符串。
page 参数除了列表的内容之外没有任何改变。
List 只是 ListView,它显示字符串列表。
当我使用 URLRewriting 时,在我不提供实例提供参数的情况下,URL 会有所不同。
有人可以帮我解决这个问题吗?
我的 WebMethod:
[WebMethod]
public static string GetResult(int id)
{
return "Hooray";
}
我的 Web 方法调用:
PageMethods.GetResult(docId,
function onSuccess(list) {
$(element).parent().siblings().filter(":first").append(list);
});
不带参数的 URL:www.mywebsite.com/items 被重写为 www.mywebsite.com/items.aspx
URL,参数为:www.mywebsite.com/items/1 被重写为 www.mywebsite.com/items.aspx?id=1
I have a WebMethod which accepts one parameter.
When I send a request to the webmethod without any parameters everything works well but when I supply a parameter to the same method, it returns entire site instead of a string.
The page parameter changes nothing except the content of the list.
List is just ListView which displays list of strings.
When I use URLRewriting the URL is different in instances that I supply a parameter from instances when I do not.
Can anybody help me with this problem?
My WebMethod:
[WebMethod]
public static string GetResult(int id)
{
return "Hooray";
}
My web method call:
PageMethods.GetResult(docId,
function onSuccess(list) {
$(element).parent().siblings().filter(":first").append(list);
});
URL without parameter:www.mywebsite.com/items is rewritten to www.mywebsite.com/items.aspx
URL with parameter:www.mywebsite.com/items/1 is rewritten to www.mywebsite.com/items.aspx?id=1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是关于您的同一问题的讨论,可能会对情况有所帮助。基本上,它所说的是它不起作用,因为处理 PageMethods 的处理程序正在寻找 {pagename.aspx}/{methodname},而您的 url 重写导致它无法识别您正在调用页面方法。
该页面上的一项建议是在自动生成的相同签名调用之后的 JavaScript 代码中添加以下内容:
这将使其使用真实的 url 而不是重写的 url 来调用您的页面方法。
Here's a discussion about your same issue that might shed some light on the situation. Basically, what it says is that it's not working because the handler that deals with PageMethods is looking for {pagename.aspx}/{methodname}, and your url rewriting is causing it to not recognize you are calling a page method.
One suggestion on that page was to add the following in your javascript code somewhere after the auto-generated call of the same signature:
This will make it call your page method using the real url instead of the rewritten one.