【问题标题】:Why a PageMethods calling doesn't work?为什么 PageMethods 调用不起作用?
【发布时间】:2009-03-16 12:13:26
【问题描述】:

我有一个对 C# WebMethod 的 javascript 调用。同一页面有另一个调用,它正在工作。我调试了javascript代码,这叫做:

function userUpdReq_onOk()
{
...
var clientValidationPassed =Page_ClientValidate();

if( clientValidationPassed )
{
PageMethods.RequestUserUpdate(username, email, sex, zipCode, state, city, neighborhood, address, addressNumber, addressComplement, phone, promotionalInfo, connectionType, connectionSpeed, userUpdReq_OnComplete, userUpdReq_OnError);
}
...
}

调试器经过这一行,但它进入的下一个方法是 userUpdReq_OnError( )。为什么会这样?

【问题讨论】:

  • 你在page方法上设置断点了吗?

标签: c# asp.net javascript pagemethods


【解决方案1】:

传递给 userUpdReq_OnError() 的错误参数中的消息是什么?

当您的页面方法内部发生错误时,将调用 OnError 方法。有时这将是一个强制转换问题,或者由于某些其他原因导致的服务器错误。传递给您的 OnError 方法的错误消息应该能够引导您找出失败的原因。

要获取错误消息,可以按如下方式定义错误处理程序:

function userUpdReq_OnError(error){}

error参数会有提示失败原因的信息。

【讨论】:

  • 我在哪里可以看到消息? OnError 没有定义用于接收参数的参数。我调试了PageMethod调用,它对一些代码做了很多循环来验证参数,我还没有实现这个过程的结束。
  • 您可以如下定义错误处理程序: function userUpdReq_OnError(error){} 您应该可以通过这种方式获取错误消息。
  • 我很高兴它成功了!!我已将函数声明添加到答案中,以防它对其他人有所帮助。
【解决方案2】:

我认为这是另一个“无辜”的问题,但它给我带来了很多麻烦,然而,由于某种未知的原因,aspx 在某些地方丢失了对 ScriptManager 的一些引用,因此,我们必须做的解决它是从 aspx 中删除 ScriptManager ,再次添加它并将位于属性窗口中的 EnablePageMethods 设置为 true。

问候。

【讨论】:

    猜你喜欢
    • 2015-08-11
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多