0

こんにちは、次のアプローチを使用して、データベースからリストを作成し、ビューでそれらにアクセスしようとしています。これが私が試したことです…</p>

var rTypeList = from r in db.Rubrics where r.DepartmentID == 2 select r;
var selectedRubrics = typeList.Select(r => r.Category);
IList <String> rubricsList = selectedRubrics.ToList();

IList<SelectListItem> iliSLI = new List<SelectListItem>();

SelectListItem selectedrubrics = new SelectListItem();
selectedrubrics.Text = "Choose An Option";
selectedrubrics.Value = "1";
selectedrubrics.Selected = true;

iliSLI.Add(selectedrubrics);

ViewData["Options"] = iliSLI;

それから私の見解では: @Html.DropDownList("Options")

これでリストの作成が開始されますが、このリストから値を取得するにはどうすればよいでしょうか… IList <String> rubricsList = selectedRubrics.ToList();…ドロップダウン リストに追加するにはどうすればよいでしょうか?

4

1 に答える 1

1

問題の難しい部分をほぼ把握しました。

ここに説明があります...

コントローラ側では、SelectListItem タイプの List が必要です。このリストを ViewBag.DropDownData に渡しました。代わりにモデルに渡すこともできますが、できるだけシンプルにしようとしています。したがって、リストをビューバッグに渡します。

コントローラーコード

var myList = new List<SelectListItem>
{
new SelectListItem {Text = "Yasser", Value = "YS"},
new SelectListItem {Text = "Vaibhav", Value = "VS"},
new SelectListItem {Text = "Ramanjit", Value = "RS"}
};

ViewBag.DropDownData = myList;

@Html.DropDownListFor() メソッドを使用するビューでは、最初の引数はモデルで宣言された string/int (値に応じて) である必要があり、後でデータがコントローラーにポストバックされるときに使用されます。2 番目のパラメーターは、モデルを使用している場合は、代わりにモデルをここに渡す場合に備えて、準備したリストです。

レーザービュー

@Html.DropDownListFor(m => m.ValueSelected, ViewBag.DropDownData as List<SelectListItem>)

それだけです。あなたのドロップダウンは準備ができています:)、これが私のコードの出力です:

出力

ここに画像の説明を入力

お役に立てれば。

于 2013-02-19T05:52:54.433 に答える