我是BreezeJS新手,最近创建了一个正在启动和运行的项目。我可以使用Breeze查询来自我的SQL服务器的数据,没有问题。但是,每当我试图保存更改时,更改都不会保存。在VS 2012中,我已经验证了JavaScript保存函数实际上是被调用的,但是服务器端的HttpPost方法从未被调用。
这是我设置的微风控制器:
using System.Linq;
using System.Web.Http;
using Newtonsoft.Json.Linq;
using Breeze.WebApi;
using FitnessTracker.Models;
namespace FitnessTracker.Controllers
{
[BreezeController]
public class BreezeController : ApiController
{
private readonly EFContextProvider<FitnessTrackerContext> _fitnessContext =
new EFContextProvider<FitnessTrackerContext>();
//
// GET: /Breeze/
[HttpGet]
public string Metadata()
{
return _fitnessContext.Metadata();
}
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _fitnessContext.SaveChanges(saveBundle);
}
[HttpGet]
public IQueryable<FitnessEquipment> FitnessEquipments()
{
return _fitnessContext.Context.FitnessEquipments;
}
}
}下面是我使用的保存函数:
function saveChanges() {
return manager.saveChanges()
.fail(saveFailed);
}下面是HTML:
<div class="box-body form" data-bind="foreach: exercises">
<input type="text" class="txt-m g2" data-bind="text: EquipmentName" />
<input type="text" class="txt-m g1" data-bind="text: EquipmentLevel" />
<input type="text" class="txt-m g2" data-bind="text: DurationSeconds" />
<input type="text" class="txt-m g2" data-bind="text: Weight" />
<input type="text" class="txt-m g4" data-bind="text: DateTime" />
<br class="clear" />
</div>保存更改
提前感谢您的帮助!!
编辑9/12/2013:我已经修复它感谢杰的帮助!!
问题是,我绑定的是文本,而不是值。我将html更改为:
<div class="box-body form" data-bind="foreach: exercises">
<input type="text" class="txt-m g2" data-bind="value: EquipmentName" />
<input type="text" class="txt-m g1" data-bind="value: EquipmentLevel" />
<input type="text" class="txt-m g2" data-bind="value: DurationSeconds" />
<input type="text" class="txt-m g2" data-bind="value: Weight" />
<input type="text" class="txt-m g4" data-bind="value: DateTime" />
<br class="clear" />
</div>它现在是没有问题的储蓄。谢谢杰的帮助!
发布于 2013-09-12 00:47:35
您是否确认您实际上正在更改/或在客户机上的EntityManager中添加一个实体?您可以调用EntityManager的hasChanges方法来确认。如果没有要保存的更改,微风不会尝试调用服务器。
所以试一试
if (manager.hasChanges()) {
manager.saveChanges()
.fail(saveFailed);
} else {
// my guess is that you will get here.
}我的猜测是,您要么有绑定问题,要么没有查询或创建需要保存的实体。
https://stackoverflow.com/questions/18731269
复制相似问题