1

SharpArch経由でMVCアプリを持っています。私が持っているビューでは:

 Html.DropDownListFor(x => x.Location, 
     new SelectList(Model.PossibleLocations, "Id", "Address"), 
     "-- No Location --")

2つの問題があります。

  1. ビューがモデルにバインドされても、ドロップダウンは更新されません。
  2. 一番上の「場所なし」を試してみる場合を除いて、選択は正しく保持されます。

x.Locationをx.Location.Idに変更することで最初のポイントを処理できましたが、その後、他の問題が発生しました。

DropDownListの例はたくさんありますが、nullの保存が示されている例はありません。

どんな助けでも大歓迎です。

ありがとう

アップデート:

Resharper(マイナーアップデート)をアップグレードしたところ、DropDownListForを入力するように求められました。なぜそれが違いを生むのでしょうか?バインドするのに十分に機能していましたが、現在はまったく機能しません。

4

2 に答える 2

1

LocationId がバインド先の実際の値になるように、モデル クラスを「フラット化」してみてください (つまり、「LocationId」プロパティをモデルに追加し、DropDownList を作成しますx => x.LocationId)。

于 2011-05-13T00:44:12.670 に答える
1

に渡す前に常に「空」SelectListItemをコレクションに挿入し、フォームが投稿されたときにその「空」値 (たとえば 0) を確認できます。PossibleLocationsView

model.PossibleLocations.Insert(0, 
    new SelectListItem() { Text = "-- No Location --", Value = "0" };
于 2011-05-13T01:00:30.230 に答える