Tag: knockout mapping plugin

如何更改asp.net mvc格式化JSON的方式?

我有这个型号 : public class Person { public string Name { get; set; } public int Age { get; set; } public List Colors { get; set; } } public class Color { public int ColorId { get; set; } public string Name { get; set; } } 和asp.net MVC的return Json(…)给了我这个: [{“Name”:”JC”,”Age”:24,”Colors”:[{“ColorId”:1,”Name”:”Red”},{“ColorId”:2,”Name”:”Blue”}]}, {“Name”:”Albert”,”Age”:29,”Colors”:[{“ColorId”:2,”Name”:”Blue”}]}] 当我尝试返回一种类型: List 但我想要这样的东西(如果可能的话): […]

KnockoutJS并将单个对象绑定到viewmodel

我一直在这周围,并没有看到出现问题的地方。 也许你可以帮忙。 有多种视图模型设置: var viewModels = { emailTemplateViewModel: { subject: new ko.observable(‘dd’), emailName: new ko.observable(‘dd’), emailAddress: new ko.observable(‘dd’), body: new ko.observable(‘dd’) }, deviceSettingsViewModel: { managerName: new ko.observable(”) } } ko.applyBindings(viewModels); 我正在尝试使用从服务器返回的JSON填充其中一个视图模型(这是正确的并且格式正确)。 function LoadEmailTemplate() { $.getJSON(‘/EmailTemplate/Template’, function (data) { viewModels.emailTemplateViewModel = ko.mapping.fromJS(data); ko.applyBindings(viewModels.emailTemplateViewModel); }) } 但是,当我运行它时,我收到以下错误:“未捕获错误:您不能多次将绑定应用于同一元素。” 但是我读到的所有文档都显示了映射后发生的绑定。 如果我从LoadEmailTemplate函数中取出绑定,则运行时没有错误,但页面显示默认值’dd’,而不是那些应该从JSON响应映射的值。 该函数触发如下: Email Template 我正在尝试使用with-binding,因为电子邮件模板仅相对于页面的某个区域,例如 和属性: 我知道这是有效的,因为表单加载了首次定义viewmodel时设置的值。 看起来好像只是映射是失误的。 任何建议都会非常感激。 […]