5

以前の質問を確認すると、SelectListとHtml.DropDown()が取得されないことに気付いたかもしれません。私はこれで私だけであるように思われるのは興味をそそられます。ですから、考え方を変えようとするべきかもしれませんし、それがすべてを解決するかどうかわからないことがあるかもしれません。私はMVCフレームワーク全体が大好きですが、SelectListは私の頭に収まりたくありません。これが私のリストです:

SelectList

  • インスタンス化後に選択した値を設定できないのはなぜですか
  • アイテムのインデックスでselectedValueを設定できないのはなぜですか
  • なぜselectedvalueは文字列である場合もあれば、私が入力したクラスである場合もあり、ListItemである場合もあります。
  • GetItems()を介してのみアイテムにアクセスできるのはなぜですか
  • selectedItemとlistItemsのタイプが一致しないのはなぜですか?
  • リストに入れたアイテムがlistItemに変換され、selectedItemが変換されないのはなぜですか?
  • GetItems()メソッドを使用せずにアイテムの数を取得できないのはなぜですか

Html.DropDownList()

  • モデルバインディングが機能しないのはなぜですか
  • オプションが1つしかないのに、デフォルトの選択の動作がないのはなぜですか
  • ソースselectLIstのアイテムSelectedValueをマークされたアイテムにしないのはなぜですか

pplが私に自分で書くことを提案する前に:
これはMVC製品に同梱されるので、基本的なコントロールを公式にサポートしてから、自分でロールしてそれに伴うすべての問題を抱えることを望んでいます。

4

3 に答える 3

3

あなたの痛みが分かります。恥知らずなプラグインを許してください。ただし、 MvcFluentHtmlを調べてください。SelectList と MultiSelectList は引き続き使用できますが、他にもいくつかの選択肢があります。バインダーで問題なく動作するはずです。

于 2008-12-03T21:04:01.217 に答える
2

私はあなたの質問の大部分を理解していますが、奇妙なことに、まだ問題に遭遇していません! しかし、私は MVC 開発者が私に意図したとおりにそれを使用している可能性があり、箱から出してあまり冒険する必要はありません!

少しでもお役に立てれば幸いです。SelectList と設定したプロパティの使用例を次に示します。

<%= Html.DropDownList("Module.Status", new SelectList(ViewData.Model.Statuses, "ID", "Name", ((int)ViewData.Model.Module.Status)), new {tabindex = 1, title = "Status"})%>

私のコントローラーアクションでは、ModelBinder を使用しています (これが機能しないと言っていたのですか? そこでどのような問題が発生しているのかわかりませんが、私の場合はうまくいきます。)

public ActionResult Save(int? id, [Bind(Prefix = "Module", 
            Include = "Name,Description,Status")] Module module)

その後、私の場合は " " でステータスにアクセスできますmodule.Status

于 2009-01-09T05:56:53.307 に答える
2

同様に、私は HTML ヘルパーに多くのバグベアを持っていましたが、SelectList に勝るものはありませんでした。苦情のリストに追加するには、 SelectList がジェネリックを受け入れない (または処理できない) 理由を知りたいですIEnumerable<T>。繰り返しになりますが、独自の実装をまとめることができますがIEnumerable<T>、非常に多くの便利な機能 (LINQ/Entity Framework の直接サポートなど) が有効になるため、提供する必要があると思います。

ただし、MvcFluentHtml (現在はMvcContribの一部) は追加されているように見えます。

于 2008-12-15T22:29:05.627 に答える