C# 遍历Multiselect列表
我有一个这样的模型:C# 遍历Multiselect列表,c#,asp.net-mvc,asp.net-mvc-3,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 3,Model View Controller,我有一个这样的模型: 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 {
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();
我这样填写文章:
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();
ArticleWriter_ViewModel ViewModel=新建ArticleWriter_ViewModel();
Func orderByFunc=null;
表达式filterExpr=null;
如果(id>0)
{
filterExpr=p=>p.MagazineId.Equals(id);
}
var wholeTitles=unitOfWork.NumberTitleRepository.Get(filterExpr,orderByFunc,“杂志,标题”).ToList();
然后将其传递给视图。在一些视图中,我在DropDownListFor中显示文章,但在其他视图中,我希望在DisplayFor中显示文章。我如何迭代文章以在DisplayFor中显示?在项目的
视图\DisplayTemplates
目录中创建一个名为ArticleWriter\u ViewModel.cshtml的显示模板(如有必要,创建文件夹),如下所示(Razor语法):
您可以根据需要更改DisplayFor表达式中引用的属性和/或添加表达式以筛选项目列表
如果要为显示样板指定其他名称,请使用模型名称上的UIHint注释来指定样板名称:
[UIHint("MyTemplate")]
public class ArticleWriter_ViewModel
{...}
也许你需要一个显示模板你能给我一些关于它的更多信息吗?如果你想使用Html.DisplayFor(x=>x.PropertyName),属性是一个复杂的类型,添加一个属性[UIHit]并创建一个显示模板,只需看hanselman的博客