Поскольку вы хотите перезагрузить страницу после изменения выпадающего списка, вы должны обработать событие change
, чтобы перенаправить строку запроса следующим образом:
$("#ID").on("change", function () {
var selectedId = $(this).val();
window.location.href = '@Url.Action("getDataBySelectedID", "Sample")' + '?selectedId=' + selectedId;
});
Обратите внимание, что window.location.href
использует метод HTTP GET , поэтому целевое действие должно использовать [HttpGet]
вместо [HttpPost]
:
[HttpGet]
public ActionResult getDataBySelectedID(string selectedId)
{
var que = test.getHello(selectedId);
// don't forget to repopulate ViewBag from SelectList here
return View("Index", que); // return same page with different model contents
}
Убедитесь, что тип возврата метода getHello()
совпадает с методом getStuff()
, чтобы избежать пропущенных исключений, связанных с элементом модели.
Но если вы хотите отправить форму и показать ее позже, используйте вместо нее $('form').submit()
:
JQuery
$("#ID").on("change", function () {
$('form').submit();
});
Контроллер
[HttpPost]
public ActionResult getDataBySelectedID(ViewModel model)
{
// do something
return View(model);
}