WebMethod(有时)返回整个网站

时间:2011-09-15 07:51:32

标签: asp.net webmethod

我有一个接受一个参数的WebMethod。

当我向webmethod发送一个没有任何参数的请求时,一切运行良好但是当我向同一个方法提供参数时,它返回整个站点而不是字符串。

除了列表内容之外,页面参数不会更改任何内容。

List就是ListView,它显示了字符串列表。

当我使用URLRewriting时,在我不提供实例参数的情况下,URL是不同的。

有人可以帮我解决这个问题吗?

我的WebMethod:

[WebMethod]  
public static string GetResult(int id)  
{
    return "Hooray";
}

我的网络方法电话:

PageMethods.GetResult(docId,  
    function onSuccess(list) {  
        $(element).parent().siblings().filter(":first").append(list);  
    });

不带参数的网址:
www.mywebsite.com/items is rewritten to www.mywebsite.com/items.aspx

带参数的网址:
www.mywebsite.com/items/1 is rewritten to www.mywebsite.com/items.aspx?id=1

1 个答案:

答案 0 :(得分:4)

这里的a discussion about your same issue可能会对情况有所了解。基本上,它说它不起作用,因为处理PageMethods的处理程序正在寻找{pagename.aspx} / {methodname},而你的url重写导致它无法识别你正在调用页面方法。

该页面上的一条建议是在自动生成相同签名的调用之后的某个地方的javascript代码中添加以下内容:

PageMethods.set_path('/items.aspx');

这将使用真实网址而不是重写网址来调用您的网页方法。