2012-03-05 83 views
0

当我将.net webservice的整数值传递给jquery时,它将作为布尔值返回。将.net webservice的值传递给jquery

我的web服务:

 <WebMethod()> _ 
Public Shared Function returnRowId(ByVal User As String, ByVal ProgramName As String, Lesson As String) As Boolean 
    Dim RowId As Integer 
    Try 
     Dim ds As New progressTableAdapters.Progress_LessonsTableAdapter 
     RowId = ds.InsertFirstEntry(Lesson, Now, User, "", ProgramName) 
    Catch ex As Exception 
     RowId = 0 
    End Try 
    Return RowId 
End Function 

下面是SQL代码返回ROWID”

INSERT INTO Progress_Lessons 
        (Lesson, Start_Time, User_Name, IPAddress, Programs) 
    VALUES  (@lesson,@start,@user,@IP,@Programs); 
    SELECT  SCOPE_IDENTITY() 

这里是我的Ajax代码调用Web服务和捕获的rowid:

 function returnRowId() { 
    var dataString = { 
     User: $('#lblUser').val(), 
     ProgramName: 'Conditional Statements', 
     Lesson: $('#lblLesson').val() 
    }; 
    var options = { 
     type: "POST", 
     url: 'cs.aspx/returnRowId', 
     data: JSON.stringify(dataString), 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'JSON', 
     success: function (msg) { 
      $('#rowId').val(msg.d); 
     }, 
     error: function (request, status, error) { 
          alert(request.responseText); 
          alert(status.toString); 
     } 
    }; 
    $.ajax(options); 
} 

当我调试时,webmethod中的返回值是一个合法的行号,但在t中调试该值他jQuery代码显示msg.d = true。无法弄清楚为什么行值被转换为布尔值。

任何意见赞赏。

+0

您可以从aspx页面调用returnRowId。所以我想你没有Webservice,而是想调用PageMethod而不是WebMethod。 – 2012-03-05 17:19:51

回答

0

returnRowId被宣告为as Boolean,因此RowId在被写入响应之前被转换。