使用ajax发送一个JavaScript数组以代码(c#)

我有点新C#和JavaScript,所以虽然我的问题是具体的,我打开任何替代品。

我有一个我想发送给我的代码隐藏文件以在方法中使用的值的数组(我在javascript函数中创建的)。 从我研究过使用ajax和使用JSON对数组进行字符串化看起来是最好的方法。

我的问题是

  • 我可以使用这种方法传递数组吗?

  • 如何在服务器端捕获信息(在我的代码后面?)

  • Javascript传递值

    var jsonvalues = JSON.stringify(values);
    var callback = window.location.href
    $.ajax({
      url: callback
      type: "POST",
      contentType: 'application/json',
      data: jsonvalues
    });
    

    我见过很多使用[WebMethod]或某种WebService捕获数据的解决方案,我可以使用它在我的代码隐藏文件中工作而无需返回数据吗?

    这是我在我的代码隐藏文件中使用的

    [WebMethod]
    public static void done(string[] ids)
    {
    String[] a = ids;
    }
    

    我已经使用ASP.NET MVC编写了一个深入的示例,但它可以很容易地适用于WebForms。

    用jQuery发送数据到MVC控制器

    HTML和jQuery看起来几乎完全一样,除了你调用WebMethod的地方。

    如果您使用的页面称为Default.aspx ,并且该方法称为Done ,那么WebMethod的URL将为Default.aspx/Done

    <script>
           // Grab the information 
           var values = {"1,","2","3"};
           var theIds = JSON.stringify(values);
    
           // Make the ajax call
           $.ajax({
             type: "POST",
             url: "Default.aspx/Done", // the method we are calling
             contentType: "application/json; charset=utf-8",
             data: {ids: theIds },
             dataType: "json",
             success: function (result) {
                 alert('Yay! It worked!');               
             },
             error: function (result) {
                 alert('Oh no :(');
             }
         });
      </script>
    

    你的WebMethod仍然是一样的。

    [WebMethod]
    public static void done(string[] ids)
    {
       String[] a = ids;
       // Do whatever processing you want
       // However, you cannot access server controls
       // in a static web method.
    }
    

    最简单的方法是使用ASP.NET MVC和数据绑定到列表。 所以对于一个字符串列表,这将是非常简单的。 只需制作一个如下所示的控制器操作即可:

    [HttpPost]
    public ActionResult MyAction(string[] values)
    {
        ... debug and see that values gets set to your array from javascript ...
    }
    

    然后在$.ajax调用中传递data: values 。 没有必要串起来,jQuery会弄清楚该怎么做。 对于更复杂的列表绑定,请检查(以及许多其他资源,如讨论绑定到复杂对象列表的奇妙方法):

    http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/

    要从网页或Web服务调用[WebMethod]方法,请查看本指南:

    http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

    基本上,虽然你需要的网址是ServicePage.aspx/MethodName


    将数据放入runat = server的隐藏字段中。 发布表单并正常获取数据。

    链接地址: http://www.djcxy.com/p/10903.html

    上一篇: Sending a javascript array to code behind(c#) using ajax

    下一篇: Slow performance with WPF DataGrid and ScrollViewer