我在Global.asax中使用以下内容将格式更改为客户端上的camelCase。
// Change Json data to camelCasing
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
此外,我们正在使用Unity,并且我有一个单独的服务和一个自定义的EFContextProvider类,用于重新生成在Controller中使用的元数据。我假设因为我在BreezeController之外生成元数据,然后它返回PascalCase中的元数据,我的代码首先使用DbContext。
最终结果是我获得PascalCased元数据(这看起来似乎不正确)和来自entityQueries的camelCased实体但不是可观察的敲除属性。任何有关我的实体无法观察的提示或想法都将受到赞赏。
答案 0 :(得分:1)
您不需要使用ContractResolver,Breeze直接通过它的NamingConvention类处理:请参阅此页面上的NamingConvention讨论。 Breeze Docs - NamingConvention
基本上,您需要做的就是致电:
breeze.NamingConvention.camelCase.setAsDefault(); // a convention can self-register as the default
答案 1 :(得分:0)
您可以使用BreezeConfig.Instance.GetJsonSerializerSettings()。ContractResolver实现此服务器端。
public static void RegisterBreezePreStart() {
GlobalConfiguration.Configuration.Routes.MapHttpRoute(
name: "BreezeApi",
routeTemplate: "breeze/{controller}/{action}"
);
BreezeConfig.Instance.GetJsonSerializerSettings().ContractResolver
= new CamelCasePropertyNamesContractResolver();
}