Breeze无法使用某些项目设置

时间:2013-06-27 07:35:08

标签: asp.net-mvc jquery breeze hottowel

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

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

一切正常但是在我将项目属性Start ActionCurrent Page更改为Specific Page: HotTowel/Index并且breeze无法正常工作的情况下。

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

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

而不是

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

我还检查了要发送get请求的breeze.js部分。 在两种情况下,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调用(或微风)取决于项目如何激活?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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