У меня есть форма, которая публикует действие:
public ActionResult Index()
{
CheckDataVM vm = new CheckDataVM();
vm.SerialNumbers = GetAllSerials();
vm.CustomerNames = GetAllCustomers();
vm.DateFrom = DateTime.Now.AddDays(-1);
vm.DateTo = DateTime.Now;
return View(vm);
}
[HttpPost]
public ActionResult Index(CheckDataVM v)
{
CheckDataVM vm = new CheckDataVM();
vm.SerialNumbers = GetAllSerials();
var s = vm.SerialNumbers.First().Text.ToString();
vm.Channels = GetAllChannels(s);
vm.DateFrom = DateTime.Now.AddDays(-1);
vm.DateTo = DateTime.Now;
return View(vm);
}
В моем представлении Razor у меня есть сообщение:
@using (Html.BeginForm("Index", "CheckData", FormMethod.Post, new { id = "SerialsForm" }))
{
<div class="card-body" style="font-size: small;">
<div class="form-group">
@Html.DropDownListFor(x => x.SelectedSerial, Model.SerialNumbers, new { @class = "form-control form-control-sm" })
<input type="submit" value="Submit" />
</div>
</div>
}
Модель просмотра:
public class CheckDataVM
{
public string CustomersName { get; set; }
public string SelectedSerial { get;set; }
[Display(Name="Select a serial number")]
public IEnumerable<SelectListItem> SerialNumbers { get; set; }
}
Раскрывающиеся списки работают, но когда я отправляю форму, единственное, что я получаю, - это имя объекта (SerialNumbers) в качестве ключа.
Я хочу иметь возможность выбрать выбранный элемент из раскрывающегося списка и передать его в коллекцию FormColpt в Httpost of the Index действия. Ради жизни я не могу заставить его работать!
Я ожидаю увидеть ключ с именем CustomersDdl и его значение. Например, если у меня выпадающий список стран, и я выбираю Англию, я ожидаю, что в FormCollection вернется значение с надписью Англия.
Что я делаю не так?