如何向mvc应用程序添加注释

时间:2012-02-15 11:31:54

标签: asp.net-mvc

我在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; }

}

1 个答案:

答案 0 :(得分:0)

不确定这是否是您唯一的错误,但是对于给您错误的行语法是错误的。你错过了一个逗号。试试:

@Html.RenderAction("Create","Comment", new { id = Model.MovieID    })

如果这不能解决您的问题,您是否也可以发布模型的代码?