Есть много способов сделать это, но вот общая демонстрация.
Вы можете передать список значений и описаний флажков в Model
(как в этом примере), ViewData[""]
в словаре или ViewBag
(MVC3 +).
Затем просмотрите их в цикле и добавьте их в форму, используя имя = " chxBxGroupName ", чтобы сгруппировать их.
Теперь создайте действие контроллера для публикации, которое принимает List
типа значения (в этом примере int
) с именем параметра, совпадающим с именем = " chxBxGroupName ".
Будет опубликован список проверенных значений.
Страница сообщения будет просто распечатана:
123
456
<Ч />
// This is your landing page. It gathers the data to display to the user as checkboxes.
public ViewResult MyPageWithTheCheckboxes()
{
// For example: Assume a Dictionary with the checkbox value and description
// Replace with DB call, etc.
return View(new Dictionary<int, string> { { 123, "Foo" }, { 456, "Bar" } });
}
<Ч />
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<Dictionary<int,string>>" %>
<!-- Rest of HTML page... -->
<form id="frm1" action="<%=Url.Action("MyPost")%>" method="post">
<% foreach (var item in Model) { %>
<input type="checkbox" id="chxBx<%=item.Key%>" name="chxBxGroupName" value="<%=item.Key%>"/>
<label for="chxBx<%=item.Key%>"><%=item.Value%></label>
<br/><br/>
<% } %>
<input type="submit" value="Go!"/>
</form>
<!-- Rest of HTML page... -->
<Ч />
public ContentResult MyPost(List<int> chxBxGroupName)
{
return Content(string.Join(Environment.NewLine, chxBxGroupName ?? new List<int>()), "text/plain");
}