我在MVC的详细信息页面下有一个评论列表。我希望用户能够在同一页面中添加注释并保存到数据库中。如何将数据传递给控制器操作并使用保存我的注释类的dbcontext保存它。 我在CommentController中有以下代码:
public ActionResult Create(int MovieId)
{
var moviecomment = _db.Moviecomment.Where(r => r.MovieID == MovieId);
return View(moviecomment);
}
[HttpPost]
public ActionResult Create(MovieComment Moviecomment)
{
var MovieComment = _db.Moviecomment.Add(Moviecomment);
_db.SaveChanges();
return RedirectToAction("Details");
}
并且有部分观点:
@model MvcMovie.Models.MovieComment
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div class="addcommentbox">
<h2> Add Comment </h2>
@Html.TextAreaFor(model => model.comment)
<div class="ErrorMessage">
@Html.ValidationMessageFor(model => model.comment)
</div>
<input id="addComment" type="button" onclick="" value="Add" />
</div>
}
在我的详细信息页面中,我有这个:
@model MvcMovie.Models.Movie
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
电影
标题
@ Html.DisplayFor(model =&gt; model.Title)
类型
@ Html.DisplayFor(model =&gt; model.Genre)
发布日期
@ Html.DisplayFor(model =&gt; model.PostDate)
凝视
@ Html.DisplayFor(model =&gt; model.Staring)
描述
@ Html.DisplayFor(model =&gt; model.Description)
预告片
@ Html.DisplayFor(model =&gt; model.Trailer)
<fieldset>
@Html.Partial("Comments",Model.MovieComment)
</fieldset>
<p>
</p>
<p>
@Html.ActionLink("Edit", "Edit", new { id=Model.MovieID }) |
@Html.ActionLink("Back to List", "Index")
</p>
@Html.RenderAction("Create","Comment" new { id = Model.MovieID })
我希望用户能够在详细页面中添加评论:其他东西似乎很好但是这行
@Html.RenderAction("Create","Comment" new { id = Model.MovieID })
给我以下错误。不能隐式地将类型void转换为对象。如有任何帮助,将不胜感激。
型号代码: 公共课电影 {
public int MovieID { get; set; }
public string Title { get; set; }
public String Genre { get; set; }
public DateTime PostDate { get; set; }
public string Staring { get; set; }
public string Description { get; set; }
public string Picture { get; set; }
public string Trailer { get; set; }
public virtual ICollection< MovieComment> MovieComment { get; set; }
}
征求意见
public class MovieComment
{
// public MovieComment()
//{
// Movie = new HashSet<Movie>();
//}
public int MovieCommentID { get; set; }
public string comment_title { get; set; }
public String comment { get; set; }
public int MovieID { get; set; }
// [ForeignKey("ID")]
public virtual Movie Movie { get; set; }
//[ForeignKey("ProfileID")]
public virtual Profile Profile { get; set; }
public String ProfileID { get; set; }
//public string MovieUserID { get; set; }
}
答案 0 :(得分:0)
不确定这是否是您唯一的错误,但是对于给您错误的行语法是错误的。你错过了一个逗号。试试:
@Html.RenderAction("Create","Comment", new { id = Model.MovieID })
如果这不能解决您的问题,您是否也可以发布模型的代码?