我有一个这样的模型:

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/

10-11 01:49