【问题标题】:Passing a knockout array of objects to an mvc controller action将淘汰对象数组传递给 mvc 控制器操作
【发布时间】:2012-08-23 16:11:08
【问题描述】:

各位, 谁能帮助我或指导我看一个淘汰视图模型的示例,其中包含传递给 asp.net mvc 操作的对象数组?我见过的唯一示例显示了正在传递的简单字符串数组。 谢谢

【问题讨论】:

  • 到目前为止你尝试过什么?您的数据如何,控制器操作,ko 视图模型?请发布一些代码。
  • 你试过什么。也许你可以给我们一些你的代码来使用,这样我们就不必试图读懂你的想法
  • 你知道Knockout MVC ?
  • 伙计们,我们仍处于模型阶段。我们还没有我们的模型,我正在展望未来并努力准备。

标签: asp.net-mvc knockout.js viewmodel


【解决方案1】:

Here's an example from the official Knockout site。这是一个使用嵌套数组构建的联系人编辑器。 [jsFiddle].

一个合适的 ASP.NET MVC Action 可能看起来像

public ActionResult SaveContacts(IEnumerable<Contact> contacts)

Contact 定义为类:

public class Contact
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public IEnumerable<Number> phones { get; set; }
}

其中 Number 被定义为类:

public class Number
{
    public string type { get; set; }
    public string number { get; set; }
}

给定来自 example 的 JavaScript Knockout 视图模型。您的 save 方法可能如下所示

self.save = function() {
    var jsonString = ko.mapping.toJSON(this.searchParams);
    $.ajax({
        url: "/MyController/SaveContacts",
        data: jsonString,
        type: 'POST',
        contentType: 'application/json',
        dataType: 'json'
    });
};

【讨论】:

  • 谢谢马丁。你能告诉我淘汰视图模型中的 SaveContacts 发布方法是什么样的吗?
  • 当然。我在答案中添加了一个保存方法,以替代示例中的保存方法。确保你看看这个例子 -> knockoutjs.com/examples/contactsEditor.html
猜你喜欢
  • 2013-09-22
  • 2012-10-02
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多