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 回答