0

非常に単純な質問であることは承知していますが、私は C#、ASP.NET MVC3、および ADO.Net Entity Framework の初心者であり、友人の google はあまり役に立ちませんでした...

だから、私は2つのエンティティを持っています:投稿とコメント、それらの間に1対nの関係があります。

投稿のIDを与えるルートを使用して、投稿にコメントを簡単な形式で投稿したいと思います。

GET 部分 (id は投稿の ID)

    //
    // GET: /Blog/Comment/5

    public ActionResult Comment(int id)
    {
        Comment comment = new Comment();
        comment.PostReference.EntityKey = new EntityKey("BlogEntities.Posts", "id", id);

        return View(comment);
    }

ポスト部分:

    //
    // POST: /Blog/Comment/5

    [HttpPost]
    public ActionResult Comment(Comment comment)
    {
        if (ModelState.IsValid)
        {
            db.Comments.AddObject(comment);

            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View();
    }

デバッグ モードで乗車しましたが、フォームの送信時にキーが null に設定されているようです。HttpPost メソッドで postreference を設定すると問題なく動作しますが、この時点では ID についての手がかりがありません。だから、GET部分に設定する必要があると思います...

それとも、私は完全に間違った方向に進んでいますか?

助けてくれてありがとう。

4

1 に答える 1

0

前に言ったように、完全に愚かな質問...

    //
    // POST: /Blog/Comment/5

    [HttpPost]
    public ActionResult Comment(int id, Comment comment)
    {
        if (ModelState.IsValid)
        {
            db.Comments.AddObject(comment);
            comment.PostReference.EntityKey = new EntityKey("BlogEntities.Posts", "id", id);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View();
    }

IDをメソッドの引数に入れ、AddObjectがトリックを実行した後に参照を設定します...

それが私のような失われた鳥の助けになることを願っています...

于 2012-06-18T09:32:58.490 に答える