@ Html.EditorForModel(模型)如何真正起作用? (ASP.NET)

时间:2012-04-24 16:08:00

标签: javascript html asp.net-mvc-3

如果“model.count()”是5,那么@ Html.EditorForModel(Model.ElementAt(i))是如何工作的。为什么我得到“5 * 5”元素的维度?

@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" })

是否有人知道更好的实施方法或已实施的功能来执行此任务?

1 个答案:

答案 0 :(得分:1)

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

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

您可能打算致电EditorFor,而不是EditorForModel

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

但是will not work as you expect也是。但是,因为您将List作为模型,所以可以使其正常工作:

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

overload you are calling接受Object additionalViewData作为参数。你传递了一个lambda,好像你正在调用EditorFor,而lambda只是什么也没做。