2011-10-17 7 views
1

Googleにはわかりませんが、ドロップダウンコントロールがコレクションにデータバインドされているサンプルを検索しようとしています(この部分は機能しています)ドロップダウンの選択肢を変数に読み戻したいと思います。この変数はモードのプロパティである可能性があります。選択した値を変数にバインドすると、私はtroubeを持っています。 Webフォームの世界ではこれは大したことではありませんでしたが、何らかの理由でMVC 3で動作させることはできません。コードサンプルやサンプルは高く評価されます。モデルプロパティにドロップダウン選択値をバインド

答えて

4

ASP.NET MVCでこれを行うには、ビューモデルを使用することをお勧めします。ドロップダウンリストを設計する場合、このビューモデルには2つのプロパティが必要です.1つは選択した値をバインドするために使用され、もう1つは値のコレクションとオプションを生成するために使用されるテキストを表します。次に、最初のプロパティを使用して、指定されたオプションを事前に選択できます。

だから我々は、ビューモデルを設計することにより起動します。このビューモデルを投入コントローラのアクションその後、

public class MyViewModel 
{ 
    public string SelectedId { get; set; } 
    public IEnumerable<SelectListItem> Items { get; set; } 
} 

public ActionResult Index() 
{ 
    var model = new MyViewModel 
    { 
     // preselect the second item which has value=2 
     SelectedId = "2", 

     Items = new[] 
     { 
      new SelectListItem { Value = "1", Text = "item 1" }, 
      new SelectListItem { Value = "2", Text = "item 2" }, 
      new SelectListItem { Value = "3", Text = "item 3" }, 
     } 
    }; 
    return View(model); 
} 

と強く型付けされたビューでドロップダウンを生成するDropDownListForヘルパーを使います:

@model MyViewModel 
@Html.DropDownListFor(
    x => x.SelectedId, 
    Model.Items, 
    "-- Select an Item --" 
) 
0

ドロップダウンリストva次のようにモデル内に表示されます。

public virtual SelectList ddlvalue 
     { 
      get 
      { 
       List<SelectListItem> list = new List<SelectListItem>(); 
       list.Add(new SelectListItem() { Text = "Yes", Value = "Y" }); 
       list.Add(new SelectListItem() { Text = "No", Value = "N" }); 
       return new SelectList(list, "Value", "Text"); 
      } 
      set { } 
     } 
関連する問題