【发布时间】:2015-08-04 13:33:46
【问题描述】:
我有一个操作结果,用于从我的视图模型中填充一个 IQueryable 字段和一个 IEnumerable 字段。我可以填充其中一个,但不能同时填充两个,因为我遇到了这个错误。我需要填充这两个字段,然后将它们传递给视图。谁能帮我解决这个错误?
查看模型:
public class AdminReviewViewModel {
public IEnumerable<Review> Reviews { get; set; }
public IQueryable Clients { get; set; }
public int ClientID { get; set; }
public int ReviewID {get; set;}
public string ReviewName { get; set; }
public int? ReviewPeriodID { get; set; }
public string ReviewPeriodName { get; set; }
}
控制器:
public ActionResult Review() {
AdminReviewViewModel model = new AdminReviewViewModel();
model.Clients = clientRepo.Clients;
var reviews = reviewRepo.GetAllReviews();
model = reviews.Select(s => new AdminReviewViewModel() {
ClientID = s.ClientID,
ReviewID = s.ReviewID,
ReviewName = s.ReviewName,
ReviewPeriodID = s.ReviewPeriodID,
ReviewPeriodName = s.ReviewPeriod,
});
return View(model);
}
查看:
<div class="table table-responsive" id="TablePanel">
<table class="table table-bordered"id="data">
<thead class="TableHead">
<tr>
<td>
Client ID
</td>
<td>
Review ID
</td>
<td>
Review Name
</td>
<td>
Review Period ID
</td>
<td>
Review Period Name
</td>
<td></td>
</tr>
</thead>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.ClientID)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReviewID)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReviewName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReviewPeriodID)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReviewPeriodName)
</td>
<td>
Edit
</td>
</tr>
}
</table>
</div>
【问题讨论】:
-
这不是相关代码,请显示您在哪里使用
Model -
你从哪里得到异常(在哪一行)?
-
@HamletHakobyan 我在这一行收到异常:model = model.Reviews.Select(s => new AdminReviewViewModel() {
-
@AndrewKilburn 您收到异常是因为您尝试使用来自您的 linq 语句的
IEnumerable<AdminReviewViewModel>覆盖类型为AdminReviewViewModel的变量。 -
@HamletHakobyan 不幸的是,仍然没有快乐
标签: c#