2010-07-06 23 views
1

我迷失於提交帶有多個選定框的列表框和一組複選框。帶有多個下拉框和複選框的ASP.NET MVC窗體組

如果這是一個WebForm項目對我來說不會有問題。

什麼是最佳實踐,也許有些代碼示例顯示在ASP.NET MVC2中正確提交表單,其中包含複選框和帶有多個選定項目的列表框。

這裏是形式的樣品:

類別: - 組複選框

主題的: - 列表框具有多個屬性(多= 「多個」)

回答

1

由於總是通過啓動定義視圖模型:

public class MyModel 
{ 
    public bool Check1 { get; set; } 
    public bool Check2 { get; set; } 

    public IEnumerable<SelectListItem> ListItems { get; set; } 
    public string[] SelectedItems { get; set; } 
} 

接下來控制器:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = new MyModel 
     { 
      Check1 = false, 
      Check2 = true, 
      ListItems = new SelectList(new[] 
      { 
       new { Id = 1, Name = "item 1" }, 
       new { Id = 2, Name = "item 2" }, 
       new { Id = 3, Name = "item 3" }, 
      }, "Id", "Name") 
     }; 
     return View(model); 
    } 

    [HttpPost] 
    public ActionResult Index(MyModel model) 
    { 
     // TODO: Process the model 
     // model.SelectedItems will contain a list of ids of the selected items 
     return RedirectToAction("index"); 
    } 
} 

最後查看:

<% using (Html.BeginForm()) { %> 

    <div> 
     <%: Html.LabelFor(x => x.Check1) %> 
     <%: Html.CheckBoxFor(x => x.Check1) %> 
    </div> 

    <div> 
     <%: Html.LabelFor(x => x.Check2) %> 
     <%: Html.CheckBoxFor(x => x.Check2) %> 
    </div> 

    <div> 
     <%: Html.ListBoxFor(x => x.SelectedItems, Model.ListItems) %> 
    </div> 

    <input type="submit" value="OK" /> 

<% } %> 
+0

感謝達林, 是否可以使用複選框的動態列表,因爲這些值將來自DB? 乾杯 – 303 2010-07-06 14:20:17

+0

當然,使用'IEnumerable '。 – 2010-07-06 14:48:22