Веб-метод не вызывает, но не выдает ошибку - PullRequest
0 голосов
/ 12 февраля 2012

Я изо всех сил пытаюсь заставить веб-метод работать в VB.Javascript вызывается, но никогда не вызывает веб-метод.Я работаю в режиме отладки и не получаю ошибок.

Вот код:

      <System.Web.Services.WebMethod()>
   Public Shared Sub PasteEvent(EventID As Integer, 
                                startDate As DateTime, 
                                endDate as DateTime, 
                                newStart As DateTime)

      ' work out the diff between start and end
      Dim difference As long = DateDiff(DateInterval.Minute,startDate,endDate)

      ' pasteStart  + minutes from the event start
      ' this is because we can only paste on the hour, but events may have started after the hour
      ' ie 10:15
      newStart.AddMinutes(startDate.Minute)

      ' new end = pastestart + diff
      Dim newEnd As DateTime = newStart.AddMinutes(convert.ToDouble(difference))

      ' call database 
      Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Blueprint").ToString())


      Dim cmd As New SqlCommand
      cmd.CommandType = CommandType.StoredProcedure
      cmd.CommandText = "spOPSCopyEvent"

      cmd.Parameters.AddWithValue("@EventID", EventID)
      cmd.Parameters.AddWithValue("@StartDate", newStart)
      cmd.Parameters.AddWithValue("@EndDate", newEnd)

      cmd.Connection = conn

      conn.Open()

      cmd.ExecuteNonQuery()

      conn.Close()


   End sub

JavaScript, который вызывает его:

 <script type="text/javascript" language="javascript">

      function eventCopy(eventID, start, end)
      {
         alert("copy");
         // grab the event id and store it in a hidden text box
         $("#ctl00_MainContent_hidCopyEventID").val(eventID);
         $("#ctl00_MainContent_hidCopyStart").val(start);
         $("#ctl00_MainContent_hidCopyEnd").val(end);
      }

      function eventPaste(eventStart)
      {
         alert("paste");
         alert(eventStart);
         // Call a web method, passing the eventID and the new start time
         var eventID = $("#ctl00_MainContent_hidCopyEventID").val;
         var startDate = $("#ctl00_MainContent_hidCopyStart").val;
         var endDate = $("#ctl00_MainContent_hidCopyEnd").val;

         PageMethods.PasteEvent(eventID, startDate, endDate, eventstart)
      }

   </script>

Пока у меня есть:

Обновлен мой диспетчер скриптов на главной странице, теперь enablePageMethods="true"

Попытка добавления Imports System.Web.Services

Довольно переместил JavaScript в телочем голова

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Проблема в том, что вам не хватает механизма обработки исключений для посмотрите, какую ошибку вы получили.

  1. Поместите try и catch в javascript и vb code и напечатайте ошибку.

  2. Используйте снифер, как Фидлер, чтобы увидеть, что вы отправляете.

  3. Попробуйте напечатать сообщения трассировки в веб-сервисах, используя Trace.Log и вы можете увидеть их после запуска DebugView и увидеть, куда вы попадаете

0 голосов
/ 05 марта 2012

При использовании этой строки:

var eventID = $("#ctl00_MainContent_hidCopyEventID").val; 

Я должен был поставить:

var eventID = $("#ctl00_MainContent_hidCopyEventID").val(); 

Принятие ответа Грегориса в качестве скрипача было самым полезным в диагностике проблемы.

...