簡體   English   中英

如何獲取視圖中視圖模型的屬性?

[英]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.SelectedArticleTypeViewBag.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM