使用ajax调用.net,C#在客户端获取服务器端字符串值

时间:2016-10-31 08:06:46

标签: javascript c# asp.net ajax

我正在创建一个.net应用程序。我只是想得到这个"嗨"我的ajax调用中的字符串。我需要做什么?现在我一直都是未定义的。没别了。

我的客户端脚本看起来像打击

    <script type = "text/javascript">
    $(document).ready(function () {
        $('.cart').click(function () {
            var id = $(this).attr('id');
            CallAddCart(id);
        });
    });
    function CallAddCart(ItemId) {
        $.ajax({
            type: "POST",
            url: "SearchParts.aspx/AddShopCart",
            data: '{ItemId: "' + ItemId + '"}',
            contenttype: "application/json; charset=utf-8",
            datatype: "json",
            success: function (data) {
                OnSuccess(data);
            },
            failure: function (response) {
                alert(response.d);
            }
        });
   }

   function OnSuccess(response) {
       alert('On sucess' + response);
       alert(response);
   }         
</script>

我的服务器端看起来像

    [WebMethod()]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public static string AddShopCart(string ItemId) 
    { 
       return "Hi";
    } 

更新:

问题解决了

这是导致这些问题的一个小错误。问题出在&#34; contenttype&#34;和&#34;数据类型&#34;。两种类型&#34; t&#34;这应该是大写字母。 ie&#34; contentType&#34;和&#34; dataType&#34; :)现在它能够得到嗨:))

3 个答案:

答案 0 :(得分:3)

我建议以JSON类型返回值

[WebMethod()]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AddShopCart(string ItemId) 
{
   var result = new { d = "Hi" };
   return JsonConvert.SerializeObject(result);
} 

在Javascript中

success: function (data) {
   OnSuccess(data.d);
}

答案 1 :(得分:2)

[WebMethod]
public static string AddShopCart(string ItemId)
{
    return "Hi";
}

删除它。 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]

在Javascript中

success: function (data) {
   OnSuccess(data.d);
}

信用:http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx

答案 2 :(得分:0)

导致问题的区分大小写。在下面的脚本中我更新了正确的用法

以前它是&#34; contenttype&#34;和&#34;数据类型&#34;。现在更改为contentType和dataType

<script type = "text/javascript">
$(document).ready(function () {
    $('.cart').click(function () {
        var id = $(this).attr('id');
        CallAddCart(id);
    });
});
function CallAddCart(ItemId) {
    $.ajax({
        type: "POST",
        url: "SearchParts.aspx/AddShopCart",
        data: '{ItemId: "' + ItemId + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            OnSuccess(data);
        },
        failure: function (response) {
            alert(response.d);
        }
    });
 }

 function OnSuccess(response) {
   alert('On sucess' + response);
   alert(response);
   }         
  </script>