Мне нужно передать значения полей из представления в контроллер. Мой код работает для текстового поля, но не работает для раскрывающегося списка. Я видел много ответов для Html.DropdownlistFor, но ни одного для этого случая. Есть ли способ сделать это?
Вид :
@var searchTypes = new SelectList(new[]
{
new SelectListItem {Value = "0", Text = "Email"},
new SelectListItem {Value = "1", Text = "Last Name"},
new SelectListItem {Value = "2", Text = "First Name"},
}, "Value", "Text");
@using (Html.BeginForm("Index", "Users", new { isSearch = 1, searchTerm = "SearchTerm", searchType="ddlSearchType" }, FormMethod.Post))
{
<div class="well well-sm search">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
@Html.TextBox("SearchTerm",(string)ViewBag.SearchTerm, new {name= "SearchTerm", @class = "form-control", placeholder = "Search Term" })
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<div class="controls">
@Html.DropDownList("ddlSearchType", searchTypes, new { id = "searchtypeselect", @class = "form-control" })
</div>
</div>
</div>
<div class="col-sm-2">
<button class="btn btn-primary pull-right" type="submit"><i class="glyphicon glyphicon-search"></i>Search</button>
</div>
</div>
</div>
}
Контроллер:
public ActionResult Index(int? isSearch,string searchTerm,string searchType)
{
}
Этот ответ решает ту же проблему, но в нем нет текстового поля.
Чтобы уточнить, часть поиска — это только часть моего представления. У меня есть постраничный список под ним. Поэтому мне нужно поле IsSearch, чтобы увидеть, нажата ли кнопка поиска или это изменение страницы, которое также перейдет к тому же методу действия.