1

ほぼ完成しました。しかし、コメントを追加するには少し問題があります。

「ギャラリー」と「コメント」を持つデータベースを作成しました。次に、モデルも作成しました。

public class GalleryEntries
{
    public IList<GalleryEntry> Entries { get; set; }

    public GalleryEntries()
    {
        Entries = new List<GalleryEntry>();
    }
}

public class GalleryEntry
{
    public Gallery GalleryImage { get; set; }
    public List<Comment> Comments { get; set; }
    public Comment Comment { get; set; }
}

次に、私のコントローラーは次のようになります。

GalleryDataContext GalleryDB = new GalleryDataContext();

    GalleryEntries galleryentries = new GalleryEntries();

    public ActionResult Index()
    {    

        foreach (Gallery gallery in GalleryDB.Galleries)
        {
            GalleryEntry galleryentry = new GalleryEntry();
            galleryentry.Comments = GalleryDB.Comments.Where(c => c.BildID == gallery.ImageID).ToList();
            galleryentry.GalleryImage = gallery;
            galleryentries.Entries.Add(galleryentry);
        }

        return View(galleryentries);
    }

    [HttpPost]
    public ActionResult Index(Comment comment)
    {
        Comment newComment = new Comment();

        newComment.BildID = comment.BildID;
        newComment.Comment1 = comment.Comment1;

        GalleryDB.Comments.InsertOnSubmit(newComment);
        GalleryDB.SubmitChanges();

        return RedirectToAction("Index");
    }    

最後に景色を..

@model KK_Online.Models.GalleryEntries

@foreach (var item in Model.Entries){

// here comes the picture and the written comments below.. it works perfectly..

//then down here I tried to create textarea..

@using (Html.BeginForm())
       {
            @Html.ValidationSummary(true)

        <div class="add_comment"> 
                <fieldset>
                    <legend> Add Comment </legend>

                    @Html.EditorFor(model => item.Comment.BildID)
                    @Html.ValidationMessageFor(model => item.Comment.BildID)
                    <br />

                    @Html.TextAreaFor(model => item.Comment.Comment1)
                    @Html.ValidationMessageFor(model => item.Comment.Comment1)

                   <br />

                    <button type="submit">Add Comment </button>

                </fieldset>

          </div>

       }
}

ここで、適切な PictureID を入力し、コメントを書いて送信すると、「

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Comment_Gallery". The conflict occurred in database "PhotoComment", table "dbo.Gallery", column 'ImageID'.
The statement has been terminated.

"

誰か助けてくれませんか?

4

1 に答える 1

0

私は答えを見つけました。

ビュー内でこのクラスを処理しているため、CommentデータベースをGalleryentriesクラス内に配置するだけです。

public class GalleryEntries
{
    public IList<GalleryEntry> Entries { get; set; }

    public GalleryEntries()
    {
        Entries = new List<GalleryEntry>();
    }

    public Comment Comment {get; set;}
}
于 2012-01-22T14:56:18.237 に答える