我在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。
顺便说一句,如果这与其他帖子相似,请随时告诉我。感谢。答案 0 :(得分:1)
错误是由于保留的java脚本关键字var
已被用作函数参数。错误的代码行
ReturnSerialized:function(var,succeededCallback, ...
是microsoft ajax生成的代理代码的一部分。
好消息是,从您的主题行看来,您似乎正在使用jquery ajax
方法来访问页面方法。在这种情况下,您不需要代理js代码 - 因此您可以通过设置EnablePageMethods="false"
将其关闭。这也会导致页面大小减少 - 这是原因之一,我使用jquery来访问页面方法。
无论如何,我还建议您更改参数名称,以便您/其他开发人员在将来不会遇到如此微妙的问题。