我有一个这样的模型:
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中显示它。我如何遍历这些文章以在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
{...}
关于c# - 遍历MultiSelectList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20943354/