0

午後。

ビューにドロップダウンリストがあります

    <div class="editor-label">
                    @Html.LabelFor(model => model.SiteTypeId, "SiteType")
                </div>
                <div class="editor-field">
                    @Html.DropDownList("SiteTypeId", (IEnumerable<SelectListItem>) ViewBag.SiteTypeId)
                    @Html.ValidationMessageFor(model => model.SiteTypeId)
                </div>  

モデルが次のようになっている場合:

public class SiteType
        {
            [Key]
            public int SiteTypeId { get; set; }
            public string SiteTypeName { get; set; }
        }

現在、ドロップダウンには2つの項目しかありません。

1 (value) - Foo (item)  
2 (value) - Bar (item)

これは、コントローラーを介して表示されます。

public ActionResult Details(Guid id)
    {
        var model = Model(id);

        ViewBag.SiteTypeId = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName");
        return View(model.Details);
    }

ユーザーはそれに応じてこれを更新し、データベースに保存されます。

データベースからドロップダウンリストの値を問題なく取得できますが、この値をリストに効果的にバインドするにはどうすればよいですか?

男私はこれを尋ねるのは簡単だと感じます:'(

どんな助けでも常に感謝します。

4

1 に答える 1

1

ViewBagDropDownListヘルパーの最初の引数としてSelectListを含むパラメーターに同じ名前を使用しないでください。

ViewBag.SiteTypes = new SelectList(db.SiteTypes, "SiteTypeId", "SiteTypeName");

とビューで:

@Html.DropDownList("SiteTypeId", (IEnumerable<SelectListItem>)ViewBag.SiteTypes)

このフォームが送信されると、POSTアクション内で、選択された値がと呼ばれるパラメーターとして渡されますSiteTypeId

于 2012-06-29T16:19:14.080 に答える