基本上,我想实现每个帖子都可以发布多个评论功能。但是,当用户对第一篇文章发表评论时,它甚至没有将数据提交给我的控制器,因此我无法获取评论数据,但如果用户对第二篇文章发表评论,我可以获得评论数据。为什么呢?
我的主要观点:
{
using (Html.BeginForm("ListPost", "Post", FormMethod.Get, new { @id = "forms" }))
{
foreach (var item in Model.listPost)
{
@Html.Partial("~/Views/Shared/PartialView/ListPost.cshtml", new PostModel(item))
}
}
}
我的部分观点:
{
@model PostModel
@using (Html.BeginForm("AddComment", "Comment", FormMethod.Post, new { @id = "forms" + Model.post.PostId }))
{
@Html.HiddenFor(x => x.post.PostId)
@Model.post.PostMessage
<br />
@Html.Image(@Model.post.Member.Avatar.AvatarPath, null, "displayAvatar")
<br />
@Html.Timeago(@Model.post.PostedDate);
<br />
@Html.Label("Comment:")
@Html.TextAreaFor(x => x.postComment.Message, new { @id = Model.post.PostId })
<br />
<input id= "@Model.post.PostId" class="btn btn-default" type="submit" value="Post" />
}
}
答案 0 :(得分:0)
永远不要多次呈现HTML表单以进行评论。
渲染一次评论表格并将其移至评论内部,并使用隐藏字段存储父评论ID。它将节省大量资源,不会在同一页面上反复渲染表单。
使用JavaScript将表单移动到子级。我已经完成了它,它按预期运行。