Существует несколько способов сделать это, но сначала вам нужно понять структуру того, что вы делаете.
Это не «пост-ответ» в MVC (или, действительно, в HTTP в целом ... вам не нравятся WebForms). То, что вы пытаетесь сделать, это просто отправить данные на сервер и получить ответ. В MVC Framework целью этого сообщения будет действие контроллера. Ответ может быть несколько разных вещей, в зависимости от вашего подхода.
Я рекомендую написать JavaScript для выполнения этой задачи с помощью AJAX. Таким образом, страница не обновляется, и вы только отправляете/получаете данные, относящиеся к конкретной задаче. ASP.NET MVC поставляется с jQuery, поэтому я предполагаю использование jQuery в этом случае.
Для начала вам необходимо привязать событие изменения к этому элементу select
. Это , вероятно,, идентифицированный с помощью «IdProvider» id
, но вы хотите проверить отображаемый HTML, чтобы убедиться. Предполагая, что вы можете использовать что-то вроде этого:
$('#IdProvider').change(function() {
// respond to the change event in here
});
Теперь вы можете сделать вызов AJAX к серверу внутри этого обработчика. Это может быть что-то же просто, как:
var selectedValue = $('#IdProvider').val();
$.post('@Url.Action("MyAction", "MyController")', { selection : selectedValue }, function (data) {
// handle the server response here
});
При этом действие контроллер будет иметь выбранное значение доступно в качестве аргумента называется selection
:
public ActionResult MyAction(string selection)
{
// do your server-side processing and get your data
return Json(data);
}
Это действие возвращает Json отформатированных данных, так как это время используемый JavaScript на клиенте. Поэтому при обработке ответа в вызове $.post()
выше вы получите данные в значении data
.
Что вы делаете с этими данными в JavaScript-коде, зависит от вас.Если это простая структура с двумя значениями, которые вы ищете, это может быть как-то просто, как это:
$('#AvailableCredit').text(data.AvailableCredit);
$('#ClosingDay').text(data.ClosingDay);
В качестве альтернативы, вы могли обернуть select
элемент в form
и опубликовать все это когда выбор будет изменен, и действие контроллера будет хотеть вернуть View
с данными, заполненными в этом представлении. Но это, вероятно, слишком велико, потому что все, что вы хотите сделать, это отправить одно значение и получить два значения.
Не могли бы вы дать мне простой пример этого? – mmilan
У меня совсем другой сценарий, у меня тоже есть страница с кнопками, и запрос переходит к такому же действию. Как узнать, поступает ли запрос из раскрывающегося списка или кнопки отправки. –
Отлично, теперь, что вы делаете, когда хотите на самом деле нажать кнопку «Сохранить»? –