该项目得到了一些用户可以阅读和评分的评论。查看详细信息正在显示特定评论,我在同一视图中使用评分。
评分(非偏) / _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'类型。
如果我将SelectedRating
从int
更改为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);
}