0

我知道如何从我的 MVC 应用程序中获取 json 格式的数据(见下文)

    public JsonResult Index()
    {
        return Json(db.Publications, JsonRequestBehavior.AllowGet);
    }

创建方法会是什么样子?编辑?

我猜它看起来像下面这样

    [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; }
}

任何帮助表示赞赏。

4

1 回答 1

1

对于索引,您可能会遇到一些异常,因为 EF 对象具有许多您在客户端不需要的属性,并且会引发循环引用异常。

您将不得不创建一个新的 POCO 类来“包装”存储库返回的实体,或者只使用此处建议的匿名对象:

将实体框架对象序列化为 JSON

IE:

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');});

希望这可以帮助

于 2012-04-19T01:55:13.033 回答