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

データパラメータは、メソッドシグネチャとより厳密に一致する必要があります。

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

JSON.stringifyを使用して、そのプロセスを簡素化できます。

于 2012-09-14T20:41:28.530 に答える
0

を削除して""、リテラル オブジェクトを JQuery: に渡します data: {'firstname':'fname','lastname':'dgln'}

を JSON として設定したためcontentType、JQuery はオブジェクト リテラルから適切に解析する必要があります。現在、有効な JSON ではない文字列を渡しているため、適切にエンコードできませんでした。

編集

他の回答が私が間違っていたことを示しているため、dataパラメーターはcontentType、この場合は有効な JSON で示される形式である必要があります。

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

于 2012-09-14T18:38:44.970 に答える