【问题标题】:How to send 2 sets of data back with Jquery Ajax.Post如何使用 Jquery Ajax.Post 发回 2 组数据
【发布时间】:2009-08-23 18:45:22
【问题描述】:

我正在使用 asp.net mvc,我正在尝试将 2 组数据库从 jquery 发送到我的 Mvc 视图。

现在我的视图将如下所示

public ActionResult MyView(Product one, Product two)
{
}

现在我如何将这些东西发回以便正确绑定所有内容?我知道如何使用一组数据但不知道如何使用 2。

如果我只需要将一组数据传递给一个产品参数,我会这样做

var send = form.serializeArray();

在我的 ajax 帖子中。

$.post("MyView",  send, function(result) {});

它将被发送到 MyView 并绑定到 Product1(注意在这种情况下 MyView 将只有一个参数)

但我不知道如何使用 2 个 serializedArrays 来做这件事,因为我似乎必须将这些东西 json 化,然后活页夹无法弄清楚发生了什么。

谢谢

【问题讨论】:

    标签: javascript jquery asp.net-mvc


    【解决方案1】:

    由于serializeArray 将返回一个名称/值对对象数组,您可以简单地将两个数组与Array.concat 连接起来:

    var send = array1.concat(array2);
    

    【讨论】:

    • 嗯,这可能有效,但我怎样才能序列化不在表单中的字段。我如何从这些字段中创建这个数组?
    • 我从内存中的文本框中获取了 3 个值。我如何将它们变成一个序列化数组?
    【解决方案2】:

    您可以创建一个包含两个内部数组的对象并将其序列化吗?最后你使用的是返回的 json,你知道发生了什么吗?

    【讨论】:

    • 我不知道你的意思是“你知道发生了什么事吗?”
    • 您“知道”返回的 json 中的哪个数组。想象一下接收到以下对象:array('message' => 'success', 'data' => array('dataset1' => array(data), 'dataset2' => array(data2))
    【解决方案3】:

    不确定我是否理解,但我会试一试。如果您在视图中有两个模型,并且您想在控制器中更新这两个模型。您可以实例化这两种模型类型,并对每个模型单独使用 TryUpdateModel() 方法。我已经使用了它,它的工作原理是两个模型中的所有字段都保留在表单帖子中。

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多