我知道如何从我的MVC应用程序获取json格式的数据(见下文)
public JsonResult Index()
{
return Json(db.Publications, JsonRequestBehavior.AllowGet);
}
create方法会是什么样子?编辑?
我猜它看起来像下面的
[HttpPost]
public void Create(Publication publication)
{
try
{
db.Publications.Add(publication);
db.SaveChanges();
}
catch
{
// what do I catch?
}
}
如果是这种情况,我的JSON调用会是什么样的?
(假设Publication类如下所示)
public class Publication
{
public int Id { get; set; }
public String Title { get; set; }
}
感谢任何帮助。
答案 0 :(得分:1)
对于索引,您可能会遇到一些异常,因为EF对象具有许多您在客户端不需要的属性,并且会抛出循环引用异常。
您必须创建一个新的POCO类来“包装”存储库返回的实体,或者只是按照此处的建议使用匿名对象:
Serialize Entity Framework objects into JSON
即:
return Json(db.Publications.Select(p => new {Id = p.Id, Title = p.Title}), JsonRequestBehavior.AllowGet);
然后,从客户端使用Json的调用必须看起来像这样(假设您使用的是JQuery):
$.post('/controller/create', {id:$('#idField').val(), name:$('#nameField').val()}, function(){alert('Publication created');});
希望这有帮助