2013-03-08 60 views
0

请帮助解决这个问题。我有以下的javascript:

$('form').click(function (e) 
      { 
      if (e.target.getAttribute('id') === 'SubmitAddLevel') 
      { 
       var parent = $('#' + e.target.getAttribute('attr')), 
       var Data = []; 
       parent.find('.input').children().each(function (i, e) 
       { 
        Data.push(e.getAttribute('id') + ":" + e.value); 
        console.log(Data); 
       });     

       $.ajax({ 
        type: "POST", 
        url: 'AjaxControls.aspx/CreateUserLevel', 
        //data: Data, //.join(','), 
        dataType: "text", 
        contentType: "application/json; charset=utf-8", 
        //error: function (er) { alert(er); }, 
        success: function (response) 
        { 

         if (response.d === "true") 
         { 

          $("#ErrorDivAddLevel").html('Level created successfully!').fadeIn('slow'); 
         } 
         else 
         { 
          $("#SuccessDivAddLevel").html('Level creation failed!').fadeIn('slow'); 
         } 
        }, 

       }); 
      } 

的 '数据' 我在控制台上得到的结果是:[ “LevelNameAddLevel:系统管理员”,“PriviledgeIDAddLevels:| 1 | 2 | 3 | 4 | 5 | 6 | 7 |“]。我如何将其转换为ajax将传递给我的网络的任何东西?

这里是Web方法

<WebMethod(EnableSession:=True)> 
Public Shared Function CreateUserLevel(userLevel As String, userPriviledges As String) As String 

return "true" 

end function 
+1

什么是数据预期在服务器,什么是数据类型和参数预计 – 2013-03-08 18:35:28

+0

你可以显示Web方法的签名 – Rafay 2013-03-08 18:43:30

+0

只是一点编辑建议:改变'response.d ===“true”'= >'response.d === true'。另外,如果您在成功查找文本响应,请使用'response.responseText'。 – Mic1780 2013-03-08 18:59:47

回答

0

我觉得你的数据看起来应该更像是这样的:

[{"LevelNameAddLevel":"Admin"}, {"PriviledgeIDAddLevels":"|1|2|3|4|5|6|7|"}] 

所以,你有一个数组里面的键/值对。在请求中,您应该能够通过请求中的键获取数据。 但我不太确定这应该是什么意思:“| 1 | 2 | 3 | 4 | 5 | 6 | 7 |”