0

私はMVCを初めて使用するので、おそらく混乱しています。誰かが私にかみそりのドロップダウンを説明してもらえますか。私の質問は-

  • ドロップダウンリストとドロップダウンリストの違いは何ですか
  • データベーステーブルのID列を値として渡し、NAME列をテキストとして渡すにはどうすればよいですか。
  • ドロップダウンリストに「その他」を追加するにはどうすればよいですか。
  • コードビハインドでselectedlistitemにアクセスするにはどうすればよいですか。

可能であれば例を挙げて説明してください。

4

1 に答える 1

1
  1. DropDownList は、次のようなコードで生成されます。

    @Html.DropDownList("PersonId", new SelectList(Model.People, "Id", "Text");

    一方、DropDownListFor は次のように生成されます。

    @Html.DropDownListFor(m => m.PersonId, new SelectList(Model.People, "Id", "Text")
    DropDownList の問題は、マジック ストリングがあることです。後でモデルをリファクタリングすることにした場合、マジック ストリングも変更するのを忘れてしまう大きな変更があります。

  2. 次のような LINQ クエリを実行できます。

    var datalist = New SelectList(from x in _peopleService
                                  select new SelectListItem { Text = x.Name, Value = x.Id});
    間にサービスまたは ORM がない場合は、それを状況に適用する必要がありますが、そのようなリストを生成できます。

  3. nr 2以降は、次のことができます

    datalist.Add(new SelectListItem() { Text = "Other", Value = "-1"});
    また、ビューに渡されるビューモデル/モデルにそのデータリストを配置する必要があるため、それを使用して選択リスト項目を生成できます。この場合、次のことができます。
    @Html.DropDownListFor(x => x.PersonId, Model.PersonList);
    モデルに PersonList としてリストを保存した場合。

  4. Viewmodel (まあ、mvc のモデル) には、選択した項目が保存されるプロパティがあります。最初の質問を見てください。この例では、選択した項目の ID が PersonId プロパティに保存されます。
于 2013-02-27T07:39:10.707 に答える