这里的问题是:
我正在使用ASP.NET MVC 3,我试图通过主干保存一个实体。我现在拥有的是:
我定义了我的骨干模型(计划)如下:
var Program = Backbone.Model.extend({
defaults: function () {
return { name: "" };
},
initialize: function (attrs) {
this.set('name', attrs.name);
},
urlRoot: '/program/add'
});然后,我将模型连接起来,保存在按钮的单击事件上:
$('.add-program').click(function () {
var programName = $('.program-name').val();
var program = new Program({ name: programName });
program.save(null, {
success: function (model, response) {
alert('success');
},
error: function (model, response) {
alert('error');
}
});
});它在IE上工作(令人惊讶!)--ProgramController.Add(字符串名)被调用很好,我得到了一个成功的响应。但是,我在Chrome和FF上都有问题--它们都触发了错误回调的,与Controller根本没有被击中的略微不同(虽然在FF上是这样的)。有趣的是,我的动作断点在FF上确实会被击中,有适当的param值,但是仍然会得到错误回调。
我不知道这是怎么回事。我尝试通过Firebug/Chromebug进行调试,但是在错误回调参数上没有看到多少( errorStatus只是.好吧..。“错误”!)。我还试着看了一下Network和Fiddler,我没有看到任何让人耳目一新的东西(也许我找错地方了)。我还尝试对控制器执行一个直接的jquery调用,但仍然得到了相同的奇怪行为。
以防万一,这里是MVC操作(虽然我不认为问题在这里):
[HttpPost]
public JsonResult Add(string name)
{
var stubbedResponse = new {id = Guid.NewGuid()};
return Json(stubbedResponse);
}有什么原因吗?
发布于 2012-04-14 12:54:42
使用客户端代码的Fiddle http://jsfiddle.net/Uj5Ae/2似乎是可以的。你的服务器响应是什么?还是脊骨和下划线版本不匹配?
或者,如果在其他地方不处理事件传播,则在单击处理程序结束时返回false。
破坏者:那是事件传播:)
https://stackoverflow.com/questions/10116144
复制相似问题