2012-04-24 59 views
0

如果“model.count()”为5,那么@ Html.EditorForModel(Model.ElementAt(i))如何真正起作用?为什么我得到“5 * 5 “元素?@ Html.EditorForModel(模型)如何真正起作用? (ASP.NET)

@model List<model> 
@for (int i = 0; i < Model.Count();i++) 
{     
    @Html.EditorForModel(Model.ElementAt(i))     
} 

,实际上给了我5种元素的唯一尝试是:

@model List<model> 

@Html.EditorForModel(Model)     

在模板模型,我使用JavaScript来改变model.Numbers的值,使用“的getElementById(” NumbersX “)”:

@Html.TextBoxFor(m => m.Numbers, new { id = "NumbersX" }) 

有谁知道实现一个更好的方式,或已经实施functi在,执行这项任务?

+0

你有没有试过'我 2012-04-24 16:10:41

+0

尝试过,并获得4箭和4轮。出于某种奇怪的原因,模板每次都会打印模型中的所有元素。 – user1353547 2012-04-24 16:26:49

回答

1

EditorForModel输出整个模型的编辑器。

您的模型有五个元素,所以一个“整个编辑器”是五个元素。
你称它五次,所以你得到5x5元素。

您可能打算拨打EditorFor而不是EditorForModel

@Html.EditorFor(m => m.ElementAt(i)) 

但是那will not work as you expect要么。但是,因为你有一个清单,你的模型,你可以把它正常工作:

@Html.EditorFor(m => m[i]) 

overload you are calling接受Object additionalViewData作为参数。你传递一个lambda,就好像你在调用EditorFor一样,lambda完全不做任何事情。

相关问题