【发布时间】:2016-08-31 16:43:35
【问题描述】:
我需要在视图中访问视图模型的属性,因为我需要为 razor 中的某些内容分配一个值,但每次我键入 Model。它没有显示让我把属性放在它旁边。
这是我的代码:
@model PagedList.IPagedList<New_MinecraftNews_Webiste_MVC.Models.ArticlesViewModel>
@using PagedList.Mvc;
@{
ViewBag.Title = Model.Images;
}
<h2>@Model.SelectedArticleType</h2>
@Model.SelectedArticleType 和 ViewBag.Title = Model.Images; 错误。
错误是:
严重性代码描述项目文件行抑制状态 错误 CS1061
IPagedList<ArticlesViewModel>不包含 'Images' 的定义并且没有扩展方法 'Images' 接受 可以找到IPagedList<ArticlesViewModel>类型的第一个参数 (您是否缺少 using 指令或程序集引用?)
这是我的控制器:
[Route("Articles/{at}")]
public ActionResult ArticleTypes(string at, int page = 1, int pageSize = 15)
{
articleViewModel.Images = new List<ImageInfo>();
var modelList = (from a in db.Articles
where a.SelectedArticleType == at
orderby a.Id descending
select new ArticlesViewModel
{
Id = a.Id,
Body = a.Body,
Headline = a.Headline,
PostedDate = a.PostedDate,
SelectedArticleType = a.SelectedArticleType,
UserName = a.UserName
}).ToList();
foreach (var item in modelList)
{
item.Images = imageService.GetImagesForArticle(item.Id);
}
PagedList<ArticlesViewModel> model = new PagedList<ArticlesViewModel>(modelList, page, pageSize);
return View(model);
}
Viewmodel 看起来像:
public class ArticlesViewModel
{
public int Id { get; set; }
public List<SelectListItem> ArticleType { get; set; }
public string SelectedArticleType { get; set; }
public string UserName { get; set; }
[Required]
public string Headline { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string Body { get; set; }
[DataType(DataType.Date)]
public DateTime PostedDate { get; set; }
public ImageInfo MainImage { get; set; }
public List<ImageInfo> Images { get; set; }
}
【问题讨论】:
-
你得到了什么确切的错误?你的控制器动作和视图模型是什么样的?
-
确保将模型或模型本身的值传递给视图。最好也看到控制器内部的代码。
-
@RustamUmarov 控制器现在在那里
-
在我做 displayfor 和 foreach 循环时工作
标签: c# asp.net-mvc razor