0

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

どんな助けでも大歓迎です。

4

1 に答える 1

1

インデックスの場合、EF オブジェクトにはクライアント側で必要のない多くのプロパティがあり、循環参照の例外がスローされるため、いくつかの例外が発生する可能性があります。

リポジトリから返されたエンティティを「ラップ」するために新しい POCO クラスを作成するか、ここで提案されているように単に匿名オブジェクトを使用する必要があります。

Entity Framework オブジェクトを 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');});

お役に立てれば

于 2012-04-19T01:55:13.033 に答える