Получить значения DropDownList, который находится внутри веб-сетки, а также каждый раскрывающийся список является атрибутом модели

У меня есть веб-сетка, содержащая выпадающий список, который содержит различные элементы для каждого пользователя (элементы сгруппированы). Я хочу получить выбранные значения в контроллер. Как мне это сделать. Вот мой;

Модель:

public SelectList AvailableDevices { get; set; }

Посмотреть:

...

 var grid = new WebGrid(Model. ...
..
..

 grid.Column(header: "AvailableDevices", format: @item => Html.DropDownList("value", (IEnumerable<SelectListItem>)item.AvailableDevices)),

И у меня есть кнопка "Отправить"

@using (Html.BeginForm("AssignUserDevices", "Device"))
{
    <input type="submit" value="setUserDevice" onchange="CheckSelectedDevices()" />
}

Я хочу установить пользовательское устройство в соответствии с его типом пользователя. Я знаю, какой у него выбор, и отправляю выпадающие предметы по его типу. Таким образом, каждый элемент в сетке отличается друг от друга.

А также я не знаю, как указывать индексы для каждого элемента в сетке (думаю, нам это понадобится).

Я новичок в MVC, так что надеюсь, что вы поймете.

Спасибо;

1 ответ

Что я получил из нашего требования, что вы хотите, чтобы выбранный элемент и имел значение этого элемента в поле формы перед публикацией, если да, то вы можете следовать как дано.

  @Html.DropDownList("value", (IEnumerable<selectlistitem>)item.AvailableDevices), new      {@class="deviceclass"} )

 @using (Html.BeginForm("AssignUserDevices", "Device"))
 {
    <input type="hidden" value="" name="deviceId" id="deviceId" />
    <input type="hidden" value="" name="userId" />
    <input type="submit" value="setUserDevice" />
 }

  <script>
     $(".deviceclass").on('change', function () {
        var dropdownvalue = $(this).val();
        $('#deviceId').val(dropdownvalue);
    })
</script>

и вы можете определить функцию действия в контроллере

public ActionResult Details(string deviceId, string userId)
    {
        // do as you need. 
        return View();
    }
Другие вопросы по тегам