О каком столе вы говорите?ASP.NET MVC ничего не знает о столах и стульях.Он работает с моделями, контроллерами и представлениями.
Таким образом, у вас есть представление, в котором вы визуализировали поле <select>
, и вы хотите, чтобы при изменении значения этого поля выбора пользователем вызывать передачу действия контроллера.вновь выбранное значение для сервера, чтобы он мог выполнить некоторую обработку.Я прав?
Вы должны будете использовать javascript в своем представлении, чтобы подписаться на событие изменения этого раскрывающегося списка.Тогда у вас есть пара возможностей:
- Используйте AJAX-запрос для отправки выбранного значения на сервер.
- Перенаправьте текущий браузер (используя
window.location.href
) на действие контроллерапередавая выбранное значение в качестве аргумента действия.
В зависимости от ваших требований вы можете выбрать технику, которая подходит вам лучше всего.
Позвольте мне проиллюстрировать первый подход на примере использования jQuery:
<script type="text/javascript">
$(function() {
// subscribe to the .change event of the dropdowns
$('select').change(function() {
// fetch the newly selected value
var selectedValue = $(this).val();
// send it as an AJAX request to some controller action
$.post('@Url.Action("Foo")', { value: selectedValue }, function(result) {
// this will be invoked in the case of success of the AJAX call
// TODO: do something with the results returned by the controller action
});
});
});
</script>
и действия вашего контроллера, которое будет обрабатывать запрос AJAX:
[HttpPost]
public ActionResult Foo(string value)
{
// this action will be invoked when the user changes the selection
// in one of the dropdown lists and passed the newly selected value.
// So using this new value you could perform the desired processing
// on your model here and return a view. Since this action was invoked
// with an AJAX call you could return a JSON string to the client indicating
// the success or failure of whatever processing you were intending to perform
// here
...
}
ОБНОВЛЕНИЕ:
Если вы хотите отправить форму с раскрывающимися списками при изменении выбора, вы можете использовать следующее:
<script type="text/javascript">
$(function() {
// subscribe to the .change event of the dropdowns
$('select').change(function() {
// trigger the submission of the containing form:
$(this).closest('form').submit();
});
});
</script>