Breeze无法使用某些项目设置

我在基于John Papa的HotTowel的项目中使用breeze时遇到了问题。 我配置了微风:

var mgr = new breeze.EntityManager('breeze/Breeze'); 

一切正常,但在这种情况下,我将项目属性从Current Page Start ActionSpecific Page: HotTowel/Index和breeze无法正常工作。

我用firebug检查了请求。 在这种情况下,应用程序似乎发送一个GET请求,如下所示:

 http://localhost:53180/HotTowel/Index/breeze/Breeze/Metadata 

代替

 http://localhost:53180/breeze/Breeze/Metadata 

我还检查了breeze.js这部分, breeze.js发送get请求。 在两种情况下, url参数都设置为breeze/Breeze/Metadata ,这似乎是正确的。

  ctor.prototype.fetchMetadata = function (metadataStore, dataService) { var serviceName = dataService.serviceName; var url = dataService.makeUrl("Metadata"); var deferred = Q.defer(); var that = this; ajaxImpl.ajax({ url: url, dataType: 'json',... 

我也试过~/breeze/Breeze但它不能用作远程服务名称。

因为我是网络新手,可能与微风无关。 问题是为什么ajax调用(或微风)取决于项目如何激活?

在配置中添加/字符以执行相对于基目录的请求:

 var mgr = new breeze.EntityManager('/breeze/Breeze'); 

发生这种情况的原因是因为您为EntityManager指定了相对路径,如果您的url是localhost:53180 / HotTowel / Index,那么EntityManager的相对URL是localhost:53180 / HotTowel / Index + / breeze / Breeze。

要更正此问题,请将EntityManager路径更改为以下内容:

 var mgr = new breeze.EntityManager('breeze/Breeze');