![](/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.