2

わかりました、私はたくさんの記事を読みましたが、まだ道に迷っているので、ここで質問を出そうと思います.

「投稿」作成ビューで動的ドロップダウンを作成しようとしています。カテゴリと呼ばれるテーブルと「CategoryID」と「CategoryTitle」の 2 つの列を持つ Categories.sdf から selectList 項目を取得したいと考えています。

ビューに渡すことができるように、「postscontroller」によってビューバッグにアイテムをプルする必要があることはわかっています。しかし、これがどのように見えるかはわかりません。繰り返しますが、私は MVC を初めて使用するので、ドープのように聞こえる場合は、お詫び申し上げます。

4

1 に答える 1

1

「postscontroller」でアイテムをビューバッグに入れる必要があることはわかっています

いや、そんなことしなくていいよ。

ビューモデルを定義することから始めることができます:

public class PostViewModel
{
    [DisplayName("Select a category")]
    [Required]
    public string SelectedCategoryId { get; set; }

    public IEnumerable<SelectListItem> Categories { get; set; }
}

コントローラーに入力するもの:

public class PostsController: Controller
{
    public ActionResult Index()
    {
        var model = new PostViewModel();
        model.Categories = db.Categories.ToList().Select(c => new SelectListItem
        {
            Value = c.CategoryId,
            Text = c.CategoryName
        });
        return View(model);
    }
}

対応する厳密に型指定されたビュー ( ~/views/posts/index.cshtml) があります。

@model PostViewModel
@using (Html.BeginForm())
{
    @Html.LabelFor(x => x.SelectedCategoryId)
    @Html.DropDownListFor(x => x.SelectedCategoryId, Model.Categories, "-- select --")
    @Html.ValidationMessageFor(x => x.SelectedCategoryId)

    <button type="submit">OK</button>
}
于 2012-06-13T06:32:20.137 に答える