可以使用jQuery $ .ajax而无需在ASP.Net中交换/返回数据吗?

时间:2014-12-23 17:11:39

标签: jquery asp.net ajax vb.net

我只想更新XML文件中的startDate,所以我真的不需要任何回复。是否需要某种返回数据才能使用jQuery $ .ajax?

如果是这样我可以返回一个布尔值?如果是这样,我该怎么做?

JS

function updXmlStartDate() {
    //
    alert("post");
    $.ajax({
        type: "POST",
        url: "Login.aspx/UpdateImageStartDate",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json", 
        success: function (result) {
            alert("yay!");
        },
        error: function (result) { alert("Sorry!!! "); }
    });
}

VB

<System.Web.Services.WebMethod()>
Public Shared Function UpdateImageStartDate(ByVal newStartDate As String) As String
    'update xml
    Dim var1 = 1
End Function

现在我在.NET函数上设置了一个断点,但它没有达到它。

2 个答案:

答案 0 :(得分:3)

正如@Logan Murphey在问题上所评论的那样,ajax对象中的数据字段需要设置为data: "{'newStartDate':'" + yourstartdate + "'}"data:JSON.stringify({newStartDate:yourstartdate})

您还发送了&#34; POST&#34;在你的ajax电话中。要获得服务,服务类必须包含<ScriptService()>标记,除了自动添加到Service类和方法中的标记外,您的方法还必须包含<ScriptMethod()>标记。

示例:

<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()>
Public Class Service
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    <ScriptMethod()> _
    Public Function MyMethod() As Boolean
        '... do some work ...
        Return True
    End Function

End Class

Fiddler是检查服务电话未被点击的绝佳工具。我强烈建议在首次学习对Web服务进行异步调用时使用它或类似的东西。它可以告诉您的信息对于调试以下内容非常有用:

  • Web服务的路径不正确
  • 服务类或服务方法上的服务标签不正确或缺失
  • 其他许多事情......值得探讨

答案 1 :(得分:2)

试试这个: -

您需要将输入参数作为Json对象发送: -

function updXmlStartDate() {
    alert("post");
    input = { newStartDate: "hello" };
    var strRequest = JSON.stringify(input);
    $.ajax({
        type: "POST",
        url: "Login.aspx/UpdateImageStartDate",
        data: strRequest,
        contentType: "application/json; charset=utf-8",
        dataType: "json", 
        success: function (result) {
            alert("yay!");
        },
        error: function (result) { alert("Sorry!!! "); }
    });
}

此外,您只需从WebMethod返回一个布尔值,如下所示: -

<System.Web.Services.WebMethod()>
Public Shared Function UpdateImageStartDate(ByVal newStartDate As String) As Boolean
    Dim var1 = 1
    Return True
End Function

并在客户端检索它: -

result.d将为您提供返回的布尔值,或者&#39; true&#39;或者&#39; false&#39;。