![](/img/trans.png)
[英]How do I use same view model but for different view excluding the required properties?
[英]How do I get to the properties of the view model in the view?
我需要在视图内部访问视图模型的属性,因为我需要为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; }
}
@model PagedList.IPagedList<New_MinecraftNews_Webiste_MVC.Models.ArticlesViewModel>
@using PagedList.Mvc;
@{
ViewBag.Title = "Page title goes here";
}
@foreach (var article in Model) {
<h1>@article.Headline</h1>
<h2>@article.SelectedArticleType</h2>
}
引用PagedList对象而不是接口
@model PagedList<New_MinecraftNews_Webiste_MVC.Models.ArticlesViewModel>
@using PagedList.Mvc;
@using PagedList;
PagedList是一个列表。 因此,您必须访问子项
@for (int i = 0; i < Model.Count(); i++)
{
@Html.DisplayFor(modelItem => Model[i].SelectedArticleType)
}
如果您需要页面上的某些“标题”类型信息以及与该标题信息相关联的列表,则可能需要为该列表创建局部视图,并通过标题信息类的属性将列表传递进来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.