1

任何有关如何解决以下问题的信息将不胜感激

我正在尝试使用 JSON 将数据从 javascript 文件传输到 VB.Net 应用程序。

javascript文件中的代码如下:

function TalkToServer() {

    var formData = "{'firstname':'fname','lastname':'dgln'}"


        $.ajax({
            type: "POST",
            url: "dataserver.aspx/Save",
            data: "{'firstname':'fname','lastname':'dgln'}",
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            success: function (msg) {
                alert('Hello');
            },
            error: function () { alert(arguments[2]); }
        });

}

VB.Net代码如下:

Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.Services
Imports System.Web.Script.Serialization
Imports System.Web.Script.Services

Imports System.Web.UI
Imports System.Web.UI.WebControls

Public Class dataserver

Inherits System.Web.UI.Page

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

End Sub

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False)> _
Public Function Save(ByVal formData As williedata) As returnMessages
    'Public Function Save(ByVal name As String) As returnMessages

    Dim a As String = formData.firstname
    Dim b As String = formData.lastname


    Dim mes As returnMessages
    mes.returnParameters = "KLJN"
    mes.recAction = "JKHJH"

    Return mes



End Function



End Class

数据结构的定义如下:

Imports Microsoft.VisualBasic

Public Class williedata


Public lastname As String
Public firstname As String

End Class

但是 - 似乎从未达到 VB.Net 功能。以下错误不断出现:

内部服务器错误

我知道我做错了什么,但不知道是什么。

WCV

4

2 回答 2

0

删除,""以便将文字对象传递给 JQuery: data: {'firstname':'fname','lastname':'dgln'}

由于您将其设置contentType为 JSON,JQuery 应该从对象文字中正确解析它。由于您当前传递的字符串不是有效的 JSON,因此无法正确编码。

编辑

正如另一个答案表明我弄错了,data参数需要采用所指示的格式,contentType因此在这种情况下是有效的 JSON:

data: '{"firstname":"fname","lastname":"dgln"}'

于 2012-09-14T18:38:44.970 回答
0

您的 data 参数需要与方法签名更匹配:

data: '{"formData":{"firstname":"fname", "lastname":"dgln"}}'

您可以使用 JSON.stringify 来简化该过程

于 2012-09-14T20:41:28.530 回答