我们正在使用 ASP.NET MVC4 和 Web Api + Ko + Breeze 使用 EF Code First 开发单页应用程序。
我们的(简化的)数据模型如下所示
class Product {
public String Name { get; set; }
public ICollection<ImageCollection> ImageSets { get; set;}
public Image DefaultImage { get; set; }
}
class ImageCollection {
public ICollection<Image> Images { get; set; }
}
class Image {
public String ImageUrl { get; set; }
}
DefaultImage 是一个导航属性(带有外键)并且是 ImageSets 中的图像之一。
我们公开了 Products() 的 Web API 方法和默认的 Breeze 配置。线路上的 JSON 序列化输出具有对象引用(即 PreserveReferencesHandling.Object),因此当我想绑定 ImageUrl 时,ko 无法解析该值。
html看起来像这样
<img data-bind="attr: { src: DefaultImage().ImageUrl, title: Name}" />
当我将序列化程序切换为 PreserveReferencesHandling.None 时,绑定有效。
问题:如何使默认配置起作用?或者如果我为 Breeze 切换到 PreserveReferencesHandling.None 有什么陷阱/缺点?
谢谢!