用于$ .ajax({})的页面方法有警告

时间:2011-07-27 04:20:30

标签: jquery asp.net ajax

我在Default.aspx的.cs文件中创建了一个页面方法:

[WebMethod]
public static string ReturnSerialized(object var)
{
    JavaScriptSerializer jsSerializer = new JavaScriptSerializer();

    string serialized = jsSerializer.Serialize(var);

    return serialized;
}

该函数接受一个可序列化的对象并将其转换为json。

在我的Default.aspx页面上<form>内,我添加了<asp:ScriptManager ID="scriptManager" EnablePageMethods="true" runat="server" />。一切正常,但在Firebug中有一个错误:

missing formal parameter
[Break On This Error] ReturnSerialized:function(var,succeededCallback, failedCallback, userContext)

我只是想知道如何处理这个错误。我正在开发VS2010,而我在Default.aspx上使用的jquery lib是1.6.2。

顺便说一句,如果这与其他帖子相似,请随时告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

错误是由于保留的java脚本关键字var已被用作函数参数。错误的代码行

ReturnSerialized:function(var,succeededCallback, ...

是microsoft ajax生成的代理代码的一部分。

好消息是,从您的主题行看来,您似乎正在使用jquery ajax方法来访问页面方法。在这种情况下,您不需要代理js代码 - 因此您可以通过设置EnablePageMethods="false"将其关闭。这也会导致页面大小减少 - 这是原因之一,我使用jquery来访问页面方法。

无论如何,我还建议您更改参数名称,以便您/其他开发人员在将来不会遇到如此微妙的问题。