2

わかりました、私はかなり簡単だと思う何かのために多くの問題を抱えています。テーブルからの個別の値をドロップダウン リストに入力しようとしています。

このlinqは、各ドロップダウンオプションに必要な部門のリストを提供します.

IPACS_Master_Lists
   .Where (x => (x.Department != null))
   .Select (s => s.Department)
   .Distinct ()
   .Select (v => v)

これでドロップダウンリストを作成するにはどうすればよいですか?

@Html.DropDownList をいじってみましたが、何も動作しないようです。

私のコントローラーは次のとおりです。ViewBag で渡そうとしましたが、それも機能しませんでした。

public ActionResult Index()
        {
            var docs = db.IPACS_Master_List;
            ViewBag.Departments = new SelectList(db.IPACS_Master_List.Where(x => (x.department != null)).Select (s => s.department).Distinct().Select (v => v), "id", "department", 0);
            return View(docs);
        }
4

2 に答える 2

3

使用しないでくださいViewBag。使用するたびに子猫が死亡します。

真剣に、それは本当に悪い習慣です。

まず、モデルでこれを想定します。

public class MyModel
{
   public List<Documents> Docs { get; set; } //don't know what type this is
   public List<SelectListItem> Departments { get; set; }
   public string Department { get; set; } //this holds what you select in the view
}

次に、アクションを次のように変更します。

public ActionResult Index()
{
    MyModel model = new MyModel();
    model.Docs = db.IPACS_Master_List;
    model.Departments = db.IPACS_Master_List
       .Where(x => x.department != null)
       .Select(s => s.department)
       .Distinct()
       .Select(s => new SelectListItem
           {
               Text = s.Name,
               Value = s.Name
           })
       .ToList();

        return View(model);
}

次に、ビューにモデルを使用させますMyModel

次に、次のことができます。

@Html.DropDownListFor(m => m.Department, Model.Departments)
于 2013-04-17T21:53:05.747 に答える
1

コレクションをコレクションに変える<SelectListItem>

var myResult = IPACS_Master_Lists.Where (x => (x.Department != null))
   .Select (s => s.Department)
   .Distinct ()
   .Select (v => new SelectListItem{
    Value = v.ResultIdField,
    Text = v.ResultNameField
    })

次に、実際のドロップダウン リストにリンクします。

ViewModel 経由で渡している場合:

@Html.DropDownListFor(model=>model.SelectedResultId, @Model.myResult ,"- Select One")

ViewBag を介してコレクションを渡している場合 (私はこれを避けます):

@Html.DropDownListFor(model=>model.SelectedResultId, @ViewBag.myResult ,"- Select One")

ビューに ViewModel がまったくない場合の別のオプション:

@Html.DropDownList("selectListName", ViewBag.myResult, new {id = "selectListId"})

また、約 1 年前にここで尋ねた質問も確認してください。それはあなたを助けるはずです: ドロップダウンメニューで選択されたSelectListItem項目を選択するためにDropDownListForを取得できません

于 2013-04-17T21:47:49.137 に答える