【发布时间】:2011-03-28 09:11:01
【问题描述】:
我有 public ICollection<Comment> Comments { get; set; } 的文章模型和评论模型。我已经为文章创建了视图(详细信息视图),我想显示从模型文章(没问题)和 cmets 到文章到 cmets 以及之后的所有内容,然后显示用于向文章添加评论的表单(不在其他页面中,我希望它在查看文章)。现在我有这个:
@model SkMoravanSvitavka.Models.Article
@{
ViewBag.Title = "Zobrazit";
}
<h2>Zobrazit</h2>
<fieldset>
<legend>Article</legend>
<div class="display-label">Title</div>
<div class="display-field">@Model.Title</div>
<div class="display-label">Text</div>
<div class="display-field">@Model.Text</div>
<div class="display-label">PublishedDate</div>
<div class="display-field">@String.Format("{0:g}", Model.PublishedDate)</div>
</fieldset>
@if (Model.Comments != null)
{
foreach (var comment in Model.Comments)
{
@Html.Partial("_Comment", comment)
}
}
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.ArticleID }) |
@Html.ActionLink("Back to List", "Index")
</p>
它显示文章,并且所有 cmets 对文章都有部分视图。现在我不确定如何添加用于添加 cmets 的表单。谢谢
编辑:这是我的评论控制器和创建方法(vytvorit = create in czech :)):
public ActionResult Vytvorit(int articleID)
{
var newComment = new Comment();
newComment.articleID = articleID; // this will be sent from the ArticleDetails View, hold on :).
newComment.Date = DateTime.Now;
return View(newComment);
}
[HttpPost]
public ActionResult Vytvorit(Comment commentEntity)
{
db.Comments.Add(commentEntity);
db.SaveChanges();
return RedirectToAction("Zobrazit", "Clanek", new { id = commentEntity.articleID });
}
当我将 @Html.RenderAction 更改为 @Html.Action 时,它可以工作。它正在显示用于评论的文本框,我可以添加评论,但存在的问题是它不仅添加了文本框,而且再次添加了我的网站(不仅仅是部分视图,而是所有视图),我确信我添加了为评论创建视图作为部分。
【问题讨论】: