Как прочитать выбранные элементы в Html.ListBox во время обратной передачи

У меня есть страница поиска на моем сайте MVC, которая содержит список строк, которые, я думаю, пользователь может захотеть найти в моей базе данных. Этот список строк доступен в моем классе модели, поэтому я могу заполнить Html.ListBox этими строками следующим образом:

<%=Html.ListBox("SearchStrings", new SelectList(Model.SearchStrings)) %>

Моя проблема в том, как я могу узнать, какие строки пользователь выбрал в этом списке в моем действии обратной передачи?

Любая помощь будет принята с благодарностью.


person Simon Williams    schedule 13.04.2010    source источник


Ответы (1)


Непонятно, какой у вас тип модели, но вот пример с простой моделью:

<%= Html.ListBox(
    "SearchStrings", 
    new SelectList(
        Enumerable.Range(1, 5).Select(i => new { 
            Id = i, Text = "text " + i 
        }),
        "Id", "Text"
    )
 ) %>

Это указывает на то, что свойство Id будет использоваться как значение, а свойство Text — как текст списка. Когда вы отправляете форму, у вас может быть следующий метод действия:

[HttpPost]
public ActionResult Index(string[] searchStrings)
{
    return View();
}

В этом действии массив searchStrings будет заполнен значениями выбранных строк.

person Darin Dimitrov    schedule 13.04.2010
comment
Спасибо. Чего мне не хватало, так это того, что мне нужно было объявить параметр действия как массив строк. - person Simon Williams; 13.04.2010