DropBoxList(带值)通过Partialview - MVC

时间:2016-09-30 04:29:51

标签: c# asp.net-mvc entity-framework

该项目得到了一些用户可以阅读和评分的评论。查看详细信息正在显示特定评论,我在同一视图中使用评分。

评分(非偏) / _RatingPartial - (两个视图都有相同的代码)

@model xxxx.ViewModel.RateReviewVm

<h6>Rate the review</h6>

@using (Html.BeginForm()) {
    <div class="form-group">
        @Html.LabelFor(m => m.SelectedRating)
        @Html.DropDownListFor(m => m.SelectedRating, Model.RatingList, "Rate the review", new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.SelectedRating)
    </div>

    <button type="submit" class="btn btn-default submit">Rate</button>
}

@Html.Action("Rating", new { id = Model.Id })(关于评论)视图中的Details简单地调用了非部分视图。工作正常,但问题是它以某种方式生成一个我无法摆脱的页脚。

有没有办法删除页脚而不将其重新写入局部视图?我试图让部分视图工作,但之后它就不再起作用了,我做错了:

内部详细信息(部分尝试)

@{
    var newRating = new xxxx.ViewModel.RateReviewVm { ReviewId = Model.Id };

    Html.RenderPartial("_RatingPartial", newRating);

}
  

具有“SelectedRating”键的ViewData项是类型   'System.Int32'但必须是'IEnumerable'类型。

如果我将SelectedRatingint更改为IEnumerable<SelectListItem>,我会收到以下错误:

  

没有类型为'IEnumerable'的ViewData项   有'SelectedRating'键。

而且......现在我不知道在哪里解决它。

模型

   public class RateReviewVm {

        [Key]
        public System.Guid Id { get; set; }    
        [ForeignKey("User")]
        public System.Guid UserId { get; set; }    
        public virtual User User { get; set; }    
        [ForeignKey("Review")]
        public System.Guid ReviewId { get; set; }    
        public virtual Review Review { get; set; }    
        public bool HasLiked { get; set; }    
        public Nullable<int> Rating { get; set; }    
        //public int SelectedRating { get; set; }    
        public IEnumerable<SelectListItem> SelectedRating { get; set; }    
        public IEnumerable<SelectListItem> RatingList { get; set; }
    }

控制器

        [HttpGet]
        public ActionResult Rating(Guid id) {

            var options = new SelectList(Enumerable.Range(1, 10));

            var model = new RateReviewVm() { RatingList = options, ReviewId = id };

            return View(model);

        }

0 个答案:

没有答案