0

使用 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...");
        }
      } );

      }
4

3 回答 3

0

您必须单独传递参数。

data: {name: 'someName', surname: 'someSurName', age: 20}
于 2013-01-16T19:27:57.517 回答
0

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

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

parameterName您的代码背后的方法所期望的参数名称在哪里。

于 2013-01-16T19:31:43.567 回答
0

尝试使用

data: {str},

不是

data: '{str}',

但是最好使用@Marcus Recck 响应。

问候。

于 2013-01-16T19:32:22.223 回答