Мне нужно получить значение Select в контроллере
strDDLValue в переменной " "
Я пытался это сделать, но это не работает
[HttpPost]
public async Task<IActionResult> Create(AddItemViewModel model, IFormCollection form)
{
if (ModelState.IsValid)
{
string strDDLValue = Request.Form["selectCategory"].ToString();
HTML
<select class = "browser-default custom-select" id = "selectCategory">
</select>
Автозаполнение
<script type = "text/javascript">
$.ajax({
type: 'GET',
url: '/Item/GetItemCategories',
dataType: 'json',
success: function (category) {
$.each(category, function (key, value) {
$('#selectCategory')
.append($("<option></option>")
.attr("value",key)
.text(value));
});
}
});
</script>
strDDLValue в переменной ""
Итак, как отправить форму? Метод действия, который вы нам показали, не украшен [HttpPost]
повесил трубку [HttpPost]





Проверьте, правильно ли вы заполняете вспомогательную функцию выбора тега в обратном вызове ajax. Вот рабочий пример:
контроллер GetCountry и функция успеха в ajax
public JsonResult GetCountry()
{
var country = _context.Country.ToList();
return Json(new SelectList(country,"Id","CountryName"));
}
success: function (result) {
$("#selectCountry").empty();
$.each(result, function (i, item) {
$("#selectCountry").append('<option value = "' + item.value + '"> ' + item.text + ' </option>');
});
Укажите атрибут name помощника тега выбора, который необходимо заполнить.
<select class = "browser-default custom-select" name = "selectCountry" id = "selectCountry"> </select>
Данные формы сохраняются как пара ключ-значение в запросе, вы можете получить значение selectCountry, как показано ниже.
var dict = Request.Form.ToDictionary(x => x.Key, x => x.Value.ToString());
//In that case, you could iterate over your dictionary or you can access values directly:
var ddl = dict["selectCountry"];
Можете ли вы уточнить, что вы подразумеваете под «не работает»?