Получить значения 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();
}