0

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

モデルのテンプレートでは、「GetElementById("NumbersX")」を使用して、Javascript を使用して model.Numbers の値を変更しています。

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

このタスクを実行するためのより良い実装方法、または既に実装されている関数を知っている人はいますか?

4

1 に答える 1

1

EditorForModelモデル全体のエディターを出力します。

モデルには 5 つの要素があるため、1 つの「エディタ全体」は 5 つの要素です。
これを 5 回呼び出すと、5x5 の要素が得られます。

EditorForおそらく、 ではなくを呼び出すつもりでしEditorForModelた。

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

しかし、それも期待どおりには機能しません。ただし、モデルとしてリストがあるため、適切に機能させることができます。

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

呼び出しているオーバーロードは、そのObject additionalViewDataパラメーターとして受け入れます。を呼び出しているかのようにラムダを渡しますがEditorFor、そのラムダは単に何もしません。

于 2014-08-16T13:08:18.113 に答える