2010-11-14 71 views
0

是否有可能有一個單一的視圖模型與列表用於下拉列表,也可以從視圖模型下拉列表中選擇的值,當我張貼表單?ASP.NET MVC - 與下拉列表模型綁定

如果是這樣,我該怎麼做?

+0

安置自己的表單代碼。根據您設置表單的方式,您不需要參數。 – rboarman 2010-11-14 17:57:19

+0

我改變了我的問題。 – Rookian 2010-11-14 22:07:58

回答

2

當然,一如既往地定義你的瀏覽模式開始:

public class MyViewModel 
{ 
    public int? SelectedItemValue { get; set; } 
    public IEnumerable<Item> Items { get; set; } 
} 

public class Item 
{ 
    public int? Value { get; set; } 
    public string Text { get; set; } 
} 

則控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new MyViewModel 
     { 
      // TODO: Fill the view model with data from 
      // a repository 
      Items = Enumerable 
       .Range(1, 5) 
       .Select(i => new Item 
       { 
        Value = i, 
        Text = "item " + i 
       }) 
     }; 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Index(MyViewModel model) 
    { 
     // TODO: based on the value of model.SelectedItemValue 
     // you could perform some action here 
     return RedirectToAction("Index"); 
    } 
} 

最後是強類型的視圖:

<% using (Html.BeginForm()) { %> 
    <%= Html.DropDownListFor(
     x => x.SelectedItemValue, 
     new SelectList(Model.Items, "Value", "Text") 
    ) %> 
    <input type="submit" value="OK" /> 
<% } %>