2

「Categories」テーブルのすべてのカテゴリを表すドロップダウン リストを作成する方法を知る必要があります。

この LINQ クエリを使用して、必要な各カテゴリの名前と値を既に抽出しています。

var dbcontext = new LNQ2SQLDataContext();
        var Q = from P in dbcontext.Categories
                where P.SUB_CAT == null
                select P;

この「Q」を次のようにビューに渡すことができます: コントローラー内:

return View(Q);

そしてビューで:

@model IEnumerable<MyAppName.Models.Category>

@html.DropDownListFor()しかし、モデルから非常に優れたドロップダウンリストを作成する方法がわかりません。:|

プラス:

SelectList次のように、クエリ「Q」からa を作成できます。

var category_list = new SelectList(Q, "CAT_ID", "CAT_Name");

しかし、単純な からドロップダウンリストを作成する方法がわかりません(ビューViewBagに渡すために使用せずに) 。category_listSelectList

できるだけ多くのブログやウェブサイトを検索しました。しかし、彼らは私の問題に対する解決策を持っていませんでした。私はますます混乱するだけでした!

誰でも助けてもらえますか?:/

4

1 に答える 1

2

DropDownListFor を使用するには、選択リストを作成するための SelectList またはデータと、ドロップダウンの選択された値を格納するためのプロパティを持つモデルを用意するか、ViewBag を使用して category_list を渡す必要があります。だからあなたは一緒に行くことができます...

Public Class MyViewModel
{
    Public Integer SelectedCategory { get; set; }
    Public SelectList Categories { get; set; }
}

Public Class ItemsController : Controller
{
    Public ActionResult Index()
    {
        var dbcontext = new LNQ2SQLDataContext();
        var Q = from P in dbcontext.Categories
                where P.SUB_CAT == null
                select P;
        var vm = new MyViewModel();
        vm.Categories = new SelectList(Q, "CategoryID", "Name");
        return View(vm);
    }

    [HttpPost()]
    Public ActionResult Index(MyViewModel vm)
    {
        var theSelectedCategory = vm.SelectedCategory;
    }
}

ビューは...

@model MyViewModel
@Html.DropDownListFor(model => model.SelectedCategory, Model.Categories, "Select Category")

注: 私は通常、C# でコーディングしないので、構文が正確であることを保証できません。

于 2012-08-01T12:22:06.030 に答える