0

在我看来,我称列表为局部视图。在该部分视图中,我将该列表分成两个 IEnumerable,对于每个列表,我想为 ModelType 调用 EditorTemplate:

我的部分视图:

@model List<ModelType>

@using System.Collections;         

@{
    int countModelTypeLeft = (Model.Count % 2 != 0) ? Model.Count + 1 : Model.Count ;
    int countModelTypeRight = Model.Count;

    IEnumerable<ModelType> modelTypeListLeft = Model.Take(countModelTypeLeft);
    IEnumerable<ModelType> modelTypeListRight = Model.Range(countModelTypeLeft , countModelTypeRight );
}
    <div class="modeltype-left" style="float: left; width: 50%;">
        // How can I call EditorFor for modelTypeListLeft  now?
    </div>

    <div class="modeltype-right" style="float: right; width: 50%;">
        // How can I call EditorFor for modelTypeListRight  now?
    </div>

如您所见,我被卡住了,因为我无法调用 EditorFor,因为两个列表 modelTypeListLeft 和 countModelTypeRight 不是局部视图中给定模型的一部分。如何解决这个问题呢?

4

1 回答 1

2

如果您有 ModelType 的编辑器模板,那么这仍然可以工作并使用正确的编辑器模板

<div class="modeltype-left" style="float: left; width: 50%;">        
    @foreach(var leftItem in modelTypeListLeft )
    {
        Html.EditorFor(m=>leftItem)
    }
</div>

<div class="modeltype-right" style="float: right; width: 50%;">        
    @foreach(var rightItem in modelTypeListRight)
    {
        Html.EditorFor(m=>rightItem)
    }
</div>
于 2012-03-07T08:21:48.147 回答