我有这样一个模型:
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();
然后传递给view。在一些 View 中,我在 DropDownListFor 中显示文章,但在其他 View 中,我想在 DisplayFor 中显示它。如何遍历文章以在 DisplayFor 中显示?
在项目的 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
{...}
我是一名优秀的程序员,十分优秀!