And*_*ers 13 rest backbone.js asp.net-mvc-3
我最近一直在研究Backbone.js,现在我正试图用我的服务器端asp.net mvc 3来连接它.
这是我发现问题的时候.ASP.NET侦听不同的Actions,Ex:POST /Users/Create而不仅仅是POST /users/.因此,Model.Save()backbone.js中的方法将不起作用.
我们该如何解决这个问题?我必须改写Backbone.Sync吗?
Bil*_*uer 15
答案是不要覆盖Backbone.sync.你很少想要这样做.相反,您只需要利用模型的url属性,您可以在其中分配一个返回所需URL的函数.例如,
Forum = Backbone.Model.extend({
url: function() {
return this.isNew() ? '/Users/Create' : '/Users/' + this.get('id');
}
});
Run Code Online (Sandbox Code Playgroud)
用于模型的URL根据模型是否是新的而变化.如果我正确地阅读了你的问题,这就是你需要做的.
Ray*_*nos 12
您必须告诉ASP.NET MVC路由正确的REST URL或修复Backbone.sync,以便它在正确的URL发送GET/POST请求.
Backbone使用REST而不是RESTful URL.可能有一个Backbone.sync的操作系统实现与您的网址匹配.
推荐使用Backbone更好玩的网址:
GET /forums -> index
GET /forums/new -> new
POST /forums -> create
GET /forums/:forum -> show
GET /forums/:forum/edit -> edit
PUT /forums/:forum -> update
DELETE /forums/:forum -> destroy
Run Code Online (Sandbox Code Playgroud)
小智 9
我最近写了一篇博客文章,描述了如何将.NET MVC绑定到默认的Backbone服务层.
像之前的海报所提到的那样,你可以采取多种方法.我更喜欢这种方法,因为它需要很少的配置.
public class ZocController : Controller
{
public ActionResult Docs()
{
return Json(GetDocs(), JsonRequestBehavior.AllowGet);
}
[ActionName("Docs")]
[HttpPost]
public ActionResult HandlePostDoc(Doctor doc)
{
doc.id = Guid.NewGuid();
CreateDoc(doc);
return Json(doc);
}
[ActionName("Docs")]
[HttpPut]
public ActionResult HandlePutDoc(Doctor doc)
{
UpdateDoc(doc);
return new EmptyResult();
}
[ActionName("Docs")]
[HttpDelete]
public ActionResult HandleDeleteDoc(Guid id)
{
DeleteDoc(id);
return new EmptyResult();
}
}
Run Code Online (Sandbox Code Playgroud)
window.Doctor = Backbone.Model;
window.Doctors = Backbone.Collection.extend({
model: Doctor,
url: '/zoc/docs'
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6949 次 |
| 最近记录: |