ASP.NET MVC Форма с несколькими выпадающими и флажками группы - PullRequest
1 голос
/ 06 июля 2010

Я заблудился с представлением списка с несколькими выбранными элементами и с группой флажков.

Если бы это был проект WebForm, для меня это не было бы проблемой.

Каковы лучшие практики и, возможно, некоторые примеры кода, показывающие правильное представление формы в ASP.NET MVC2, которая содержит группу флажков и список со множеством выбранных элементов?

Вот образец формы:

Категории: - группа флажков

Тема: - список с несколькими атрибутами (множественный = "несколько")

1 Ответ

1 голос
/ 06 июля 2010

Как всегда, начните с определения модели вида:

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" />

<% } %>
...