阿贾克斯。从javascript到asp.cs的字符串

时间:2013-01-16 19:25:45

标签: javascript asp.net ajax

使用ajax将数据从javascript传递到asp.cs的问题。 它不起作用。我想传递一个包含列表框结果的字符串。 怎么了? 感谢

    public static bool AddNewItem(string name, string surname, int age)
    {


    return true;      
   } 


   <input type="submit"  value="OK" id="enter" runat="server" onclick="submitAjax()" />



      function submitAjax() {
     var listBox = document.getElementById('SubCat');
     var i;
     var str=listBox.options[0].text;

     for(i=1;i<listBox.options.length;i++)
     str=","+listBox.options[i].text;

       $.ajax({
        type: 'POST',
        url: 'RicercaAdvForn.aspx/AddNewItem',
        data: '{str}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d) {
                alert("Successfully added new item");
            }
        },
        error: function () {
            alert("Error! Try again...");
        }
      } );

      }

3 个答案:

答案 0 :(得分:0)

您必须单独传递参数。

data: {name: 'someName', surname: 'someSurName', age: 20}

答案 1 :(得分:0)

data: '{str}',会将字符串文字“{str}”传递给你的代码 - 可能不是你的意思。请尝试使用JSON.stringify代替:

$.ajax({
    ...
    data: JSON.stringify({ parameterName: str }),
    ...

其中parameterName是您的代码隐藏方法所期望的参数的名称。

答案 2 :(得分:0)

尝试使用

data: {str},

data: '{str}',

但最好的问题是使用@Marcus Recck回复。

问候。