将数据从javascript文件导入VB.Net页面

时间:2012-09-14 18:27:58

标签: javascript asp.net vb.net json

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

我正在尝试使用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

2 个答案:

答案 0 :(得分:0)

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

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

修改

由于另一个答案表明我错了,data参数需要采用contentType指示的格式,所以在这种情况下有效的JSON:

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

答案 1 :(得分:0)

您的数据参数需要与方法签名更接近:

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

你可以use JSON.stringify to simplify that process