DropDownListFor() で実装された、ドロップダウン リストを持つビューにフォームがあります。このビューは、ドロップダウンのオプションを保持する SelectList プロパティと、ドロップダウンの選択された値を保持する別のプロパティを持つ ViewModel に厳密に型指定されます。これは正常に機能していますが、私がやりたいことは、選択した値とドロップダウンの選択したテキストの両方を 2 番目のプロパティに保持することです。これを行う理由は、フォームがセルフポストするときに、各選択のテキストと値の両方を取得できるようにするためです。
選択した値のプロパティを int から KeyValuePair に変更しようとしましたが、フォームの送信時にペアの int 部分のみが設定されます。
おそらく、これを達成するためのより良い方法があるでしょう。私は、私の方法の部分的な再設計を含むすべての提案を受け入れます.
コントローラー (SelectList の構築)
SelectList leadTypeGroups = new SelectList(_enrollmentRepository.GetLeadTypeGroups(), "Key", "Value");
ビューモデル
public KeyValuePair<int, string> LeadTypeGroupID { get; set; }
public SelectList LeadTypeGroups { get; set; }
意見
@Html.DropDownListFor(selected => Model.LeadTypeGroupID, Model.LeadTypeGroups, " ")