3

データベースにテーブルがあります

ここに画像の説明を入力

ビューのドロップダウンリストに TypeName のリストを表示できました

現在、これは私のコントローラーです

 [HttpGet]
        public ActionResult CreateModule()
        {
            var moduleTypes = _db.ModuleTypes.Select(moduleType => moduleType.TypeName).ToList();
            var model = new CreateModule
                {
                    TypeNames = moduleTypes.Select(m => new SelectListItem
                        {
                            Value = m,
                            Text = m,
                        })
                };
            return View(model);

        }

そして視野に

 <div class ="input-block-level">@Html.DropDownListFor(model => model.SelectedModuleTypeName, Model.TypeNames)</div>

それはこのようなものになります ここに画像の説明を入力

私のコードに基づいてTypeName、コントローラーの post メソッドのビューから取得します。in コントローラーにアクセスIdするためにコードを変更するにはどうすればよいですか?TypeName

4

2 に答える 2

2

アクションを変更します。

public ActionResult CreateModule()
        {
            var moduleTypes = _db.ModuleTypes.Select(moduleType => new { TypeName = moduleType.TypeName, Id = moduleType.Id }).ToList();
            var model = new CreateModule
                {
                    TypeNames = moduleTypes.Select(m => new SelectListItem
                        {
                            Value = m.Id.ToString(),
                            Text = m.TypeName,
                        })
                };
            return View(model);

        }
于 2013-06-25T11:00:02.430 に答える
1

Select単一ではなく複数のアイテム

var moduleTypes = _db.ModuleTypes
                      .Select(
                          moduleType => new {
                              Id = moduleType.Id
                              TypeName = moduleType.TypeName}
                      ).ToList();

var model = new CreateModule
            {
                TypeNames = moduleTypes.Select(m => new SelectListItem
                    {
                        Value = m.Id.ToString(),
                        Text = m.TypeName,
                    })
            };

最初のステートメントは を使用して匿名オブジェクトを作成してlinqおり、2 番目のステートメントはそれを使用して作成しています。CreateModule

于 2013-06-25T11:00:23.433 に答える