我有一个这样的模型:
public class ArticleWriter_ViewModel
{
public int MagId { get; set; }
public string MagNo { get; set; }
public string TitleIds { get; set; }
public MultiSelectList Articles { get; set; }
public int[] SelectedArticles { get; set; }
}
我填写这样的文章:
ArticleWriter_ViewModel viewModel = new ArticleWriter_ViewModel();
Func<IQueryable<NumberTitle>, IOrderedQueryable<NumberTitle>> orderByFunc = null;
Expression<Func<NumberTitle, bool>> filterExpr = null;
if (id > 0)
{
filterExpr = p => p.MagazineId.Equals(id);
}
var wholeTitles = unitOfWork.NumberTitleRepository.Get(filterExpr, orderByFunc, "Magazine,Title").ToList();
然后将其传递给视图。在一些视图中我在DropDownListFor中显示文章,但在其他人想要在DisplayFor.how中显示它我可以遍历文章以在DisplayFor中显示吗?
答案 0 :(得分:0)
在项目的Views\DisplayTemplates
目录(如有必要,创建文件夹)中创建一个名为ArticleWriter_ViewModel.cshtml的显示模板(Razor语法):
@model ArticleWriter_ViewModel
@foreach (NumberTitle article in Model)
{
@Html.DisplayFor(article => article.Title)
}
您可以更改DisplayFor表达式中引用的属性和/或添加表达式以根据需要过滤文章列表。
如果要为显示模板指定其他名称,请使用模型名称上的UIHint注释指定模板名称:
[UIHint("MyTemplate")]
public class ArticleWriter_ViewModel
{...}