我刚刚注册,这是我的第一篇文章,所以如果问题不是最好的,请多多包涵。我看了看,找不到适合我要求的答案;这可能是因为无法实现我想要的。
我有一个部分视图,它从视图模型中提取 EditorFor 字段的 IEnumerable 列表:
@model DocumentViewModelContainer
@Html.EditorFor(m => m.Document.Metadata)
DocumentViewModelContainer 具有以下代码:
public class DocumentViewModelContainer
{
public DocumentViewModel Document
{
get;
set;
}
DocumentViewModel 具有以下代码:
public class DocumentViewModel
{
public IEnumerable<DocumentMetadataFieldViewModel> Metadata
{
get;
set;
}
}
在这两个视图模型中,我忽略了很多其他对象,因为它们与这个问题无关。DocumentMetadataFieldViewModel 由多个标准类型(int、strings 等)的字段组成。
我想要实现的是添加一个 OrderBy 到这个列表中,通过底部视图模型中的对象排序来拉回,如下所示:
@model DocumentViewModelContainer
@Html.EditorFor(m => m.Document.Metadata.OrderBy(i => i.InstanceFieldOrder))
然而,这给出了错误:
System.InvalidOperationException : Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
我不仅对 MVC 很陌生,而且对 C# 也很陌生;这个项目让我在飞行中学习了语言,所以请玩好 :)
谢谢,
标记