Я использую расширения Devexpress MVC и пытаюсь выяснить другую проблему, упростив ее как можно больше. Согласно официальному сайту, он должен работать, но значение выбора не передается контроллеру.Простая форма регистрации не отправляет выбранное значение
Это модель и контроллер:
public class Fruit
{
public int value { get; set; }
public string name { get; set; }
}
public ActionResult Index()
{
var model = new object[1];
var fruits = new List();
fruits.Add(new Fruit() { value = 1, name = "Apple" });
fruits.Add(new Fruit() { value = 2, name = "Orange"});
fruits.Add(new Fruit() { value = 3, name = "Lemon"});
fruits.Add(new Fruit() { value = 4, name = "Pear" });
fruits.Add(new Fruit() { value = 5, name = "Cherry" });
model[0] = fruits;
return View(model);
}
и Вид:
@using (Html.BeginForm("Create", "Home"))
{
@Html.DevExpress().FormLayout(settings =>
{
settings.Name = "Myformlayout";
settings.Width = 600;
var gi = settings.Items.AddGroupItem(gs =>
{
gs.Caption = "TEST";
});
gi.Items.Add(item =>
{
item.Name = "fruits";
item.Caption = "Fruits";
item.NestedExtensionType = FormLayoutNestedExtensionItemType.ComboBox;
ComboBoxSettings cbset = (ComboBoxSettings)item.NestedExtensionSettings;
cbset.Properties.TextField = "name";
cbset.Properties.ValueField = "value";
cbset.Properties.ValueType = typeof(int);
cbset.Properties.DropDownStyle = DropDownStyle.DropDownList;
cbset.Properties.DataSource = Model[0];
});
gi.Items.Add(item =>
{
item.NestedExtensionType = FormLayoutNestedExtensionItemType.Button;
var btnset = (ButtonSettings)item.NestedExtensionSettings;
btnset.Name = "btnSubm";
btnset.Text = "Send to ctrl";
btnset.UseSubmitBehavior = true;
});
}).GetHtml();
Выбор работает нормально, но когда кнопка «Отправить Ctrl» щелкают я получаю «Словарь параметров содержит нулевую запись для параметра« id ». Контроллер« Home \ Create »ожидает параметр int id. Если я изменю требование параметра контроллера к int ?, вызов будет выполнен, поэтому выполняется работа.
Цель: отправить обратно контроллеру идентификатор выбранного фрукта (значение).
Из того, что я вижу, у вас нет поля для идентификатора на вашем экране. Кстати, как реализовано действие Create? –
Я не внедряю Create, просто хочу понять, как передать значение выделенного текста. Согласно демоверсии DevExpress, это должно сработать, так как вы определяете раскрывающийся список. – Paxsentry