我已经差不多完成了。但是添加评论有一点问题。
我创建了一个包含“图库”和“评论”的数据库。然后我也创建了一个模型。
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.
"
有人可以帮我吗?