2017-03-21 7 views
0

私は、理想的には以下のようにTextboxforで2D配列を使用したいと思います:TextBoxForでViewModel 2d配列プロパティを使用するには?

@Html.TextBoxFor(model => model.Table[0,1]) 
@Html.TextBoxFor(model => model.Table[0,2]) 

私はエラーメッセージが出て、それがサポートされていないと信じてしかし:

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions. 

私が持っている唯一のアイデアがにありますViewModelを以下のような複数の単一次元配列に分割します。

@Html.TextBoxFor(model => model.TableR0[1]) 
@Html.TextBoxFor(model => model.TableR0[2]) 

考えられますか?

+0

ビューモデルは、ビュー内で何が必要かを表すはずです。 Viewモデルを作成し(例えば、 'List Childrenというプロパティを含む' ParentVM')、 'ParentVM'のコレクションをビューに渡します。ネストされた' for'ループを使ってデータを表示することができます。 –

+0

ありがとうございます。しかし私はデータを表示したくない。私は "TextBoxFor"を使ってデータを編集できるようにしたい。これは2d配列ではない1d配列で可能であるようです。 – SamJolly

+0

編集と表示はまったく同じです!そして、データを編集する唯一の方法は正しい2ウェイモデルバインドを取得することですネストされたモデルを使用することです –

答えて

0

この場合、Html.TextBoxがあります。 ViewModelはのデザインを変更した方が良いでしょう。ViewModelViewの要件を満たす必要がありますが、Modelではないためです。

+0

Html.Textboxを使用してコード例がありますか?ありがとう – SamJolly

+0

TextBox [、]テキストボックスです。ソリューションの一部ですか? – SamJolly

+0

@SamJolly申し訳ありませんが、私は誤解しました。行の配列を持つあなたのソリューションは最高のようです。私は最近のプロジェクトでこのアプローチを使用しました。 –

関連する問題