web-dev-qa-db-ja.com

ASP.NET MVC DropDownListの設定

OK、私は何時間もグーグルですべてを試してきましたが、何も機能しません。 Sharp Architectureを使用してMVCを学習しており、クライアントオブジェクトを作成するためのいくつかの基本的なフォームを生成しました。州のドロップダウンリストに米国の州のリストを入力し、ユーザーがそのリストから選択できるようにします。リストを作成して値を取得することはできますが(クライアントを保存するため)、クライアントを編集するときにクライアントの現在の状態が選択されません。 SelectListで選択した値を設定しました。

<li>
    <label for="Client_StateProvince">StateProvince:</label>
    <div>
        <%= Html.DropDownListFor(c=>c.Client.StateProvince, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%>
    </div>
    <%= Html.ValidationMessage("Client.StateProvince")%>
</li>

これでは十分ではないようです。私は何が欠けていますか?

44
leebrandt
<%= Html.DropDownListFor(c => c.Client.StateProvince.Id, 
                              new SelectList(Model.StateProvinces, 
                                             "id", 
                                             "Name", 
                                             Model.Client.StateProvince), 
                              "-- Select State --")%>

これはそれを行います。

これが他の誰かに役立つことを願っています。

〜リー

78
leebrandt

感謝します!サブカテゴリで親関係を設定するために使用しました:

<%= Html.DropDownListFor(
 model => model.Category.ParentId,
 new SelectList(Model.Categories,
 "CategoryId",
 "Name",
  Model.Categories.Where(x => x.CategoryId == Model.Category.ParentId).Single()))%>

イェロエン

7
user241243

私はこのようにしました。うまくいく。

コントローラ

IFarmModelInterface service2 = new FarmModelRepository();
ViewData["Farms"] = new SelectList(service2.GetFarmNames(), "id", "FarmName", "XenApp");

表示する

<%: Html.DropDownListFor(m => m.Farm, (ViewData["Farms"] as SelectList)) %>
4
bcahill
public ActionResult  AllUsers()
{
    List<Users> users = userRep.GetUsers();
    var listUsers = (from u in users.AsEnumerable()
                     select new SelectListItem
                     {
                        Text = u.UserName,
                        Value = u.UserId.ToString(),
                        Selected = (u.UserId==6)
                     }).AsEnumerable();
    ViewBag.ListItems = listUsers;
    //ViewBag.SelectedItem = 2;
    return View();
}

AllUsers.cshtmlで

<p>@Html.DropDownList("ListItems")</p>
3
Jasvir Singh
<%= Html.DropDownListFor(c => c.Client.StateProvince, new SelectList(Model.StateProvinces, "Id", "Name")) %> 

そして、StateProvinceのToString()をオーバーライドしてIdを返します。つまり:

return Id.ToString();

これは機能しますが、完璧なソリューションではありません...

デニス

2

これはビューです-MVCコントローラー

@Html.DropDownListFor(m => m.Entity, new ABC.Models.DropDownPopulate().MyMethod, new { @class = "form-control input-inline input-medium" })

MyMethod SelectListItemsを使用してドロップダウンでデータリストバインドを取得

 public List<SelectListItem> MyMethod
        {
            get
            {
                List<SelectListItem> dropdownList = new List<SelectListItem>();
                var items = new DropDown_Bl().GetAll();
                foreach (var item in items)
                {
                    SelectListItem dropdownItem = new SelectListItem();
                    dropdownItem.Value = item.RnID.ToString();
                    dropdownItem.Text = item.Description;
                    dropdownList.Add(dropdownItem);
                }
                dropdownList.Insert(0, new SelectListItem() { Text = "Please Select", Value = "", Selected = true });
                return dropdownList;
            }
        }

Dropdown_BlのGetAllメソッド-データベースからリストとしてデータを取得するために使用

  public List<My_Table> GetAll()
        {
            var Items = _Context.MyRepository.GetMany(q => q.Area == "ASD").ToList();
            return Items ;
        }
1
Thisara Subath
_public ActionResult  AllUsers() {
    List<Users> users = userRep.GetUsers();
    var listUsers = (from u in users.AsEnumerable()
                     select new SelectListItem
                     {
                        Text = u.UserName,
                        Value = u.UserId.ToString(),
                        Selected = (u.UserId==6)
                     }).AsEnumerable();
   // ViewBag.ListItems = listUsers;
   ViewData["tempEmpList"]=listUsers;
    return View(); }
_

フィルドロップダウン

@Html.DropDownList("SelectedEmployee", new SelectList((IEnumerable) ViewData["tempEmpList"], "Id", "Name"))

0
Krishan Pal