0

私のエンティティは、特定の日時のフロートを保存するための辞書を持っています。

public Dictionary<DateTime, float> PriceDictionary; 

そのエンティティのコンストラクターで、float-value のデフォルト値が 0 の 200 個の日時を新しいオブジェクトに追加します。

そのエンティティの編集ビューには、このような辞書が表示されます

    @foreach (var p in Model.PriceDictionary)
        {
            <div class="editor-field">
                @Html.EditorFor(model => p.Key)
                @Html.EditorFor(model => p.Value)
            </div>
        }

値は編集可能で、すべての値はポストバックにあります。例:

...p.Key=2012%2F02%2F02&p.Value=50&p.Key=2012%2F02%2F03&p.Value=0...

問題は、変更された値が保存されないことです。Http-Post のコントローラーを調整する必要があると思いますが、どうすればよいかわかりません。誰かがヒント (または 2 つ) を教えてくれれば幸いです。これまでのところ、コントローラーは次のようになっています。

db.Entry(stockposition).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index"); 

これに対するより良い解決策はありますか?ご容赦ください。私は C# の新入生で、わずか 5 日前に MVC を始めました。

4

1 に答える 1

3

次の Scott Hanselman の投稿をご覧ください。 http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx

辞書にバインドする方法について説明します。

基本的には、フィールドの名前が正しいことを確認するだけです。

于 2013-05-22T21:13:09.810 に答える