2010-12-01 2 views
0

Я пытаюсь использовать методы страницы для вызова функции, и я получаю ошибку «PageMethods isdefinded». Я использовал их до использования C#, но не VB, поэтому мне интересно, не мой синтаксис неправильный, поскольку все примеры, которые я могу найти, это C#. Мне также интересно, не потому ли, что мой сценарист находится на главной странице?Страница Методы throwing Undefined

Я читал об этой ошибке везде, но все, что у меня есть, кажется правильным!

Может ли кто-нибудь указать мне на то, что я делаю неправильно?

Спасибо!

Мой код:

Часть Master Page

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" EnablePageMethods="true" > 
</asp:ScriptManager> 
<div id="header">~~~~~ 

Содержимое страницы HTML

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
<script type="text/javascript"> 
     function selectZones(commaSeparatedList){ 
      PageMethods.Zones(commaSeparatedList); 
     } 
    </script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="navigationPlaceHolder" runat="server"> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="ContentBodyPlaceHolder" runat="server"> 

<a href='' onclick='selectZones("blah,blah,blah"); return false;'>click here</a> 
</asp:Content> 
<asp:Content ID="Content4" ContentPlaceHolderID="functionsMenuPlaceHolder" runat="server"> 
</asp:Content> 

Содержимое кодовой страницы За

Imports System.Web.Services 

Public Class TestClass 
    Inherits BaseClass 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    End Sub 

    <WebMethod()> 
    Protected Shared Sub Zones(ByVal zones As String) 
     HttpContext.Current.Response.Write("test = " & zones) 
    End Sub 
End Class 
+0

Попробуйте разместить ScriptManager в .aspx страницы содержимого. При удаче? – 2010-12-01 14:49:58

+0

Это не имело значения. – Bex 2010-12-06 11:06:25

ответ

0

Наконец-то это удалось. Ничего общего с менеджером сценариев или чем-то в этом роде.

Мой метод в код нужно быть общественности так теперь выглядит следующим образом:

<WebMethod()> 
Public Shared Sub Zones(ByVal zones As String) 
    HttpContext.Current.Response.Write("test = " & zones) 
End Sub 

Не понимаю, что это было необходимо.

1

Я считаю, что у вас есть проблема, когда метод «selectZones» работает до того, как скрипты из диспетчера сценариев завершатся для запуска. Я предлагаю вам попробовать поместить вызов в готовый документ или событие и посмотреть, работает ли звонок в это время. Скрипты будут запускаться, когда они будут видны клиентским браузером, и если они будут загружены, как менеджер сценариев, вначале будут запускаться другие сценарии на странице.

Смежные вопросы