То, что вы пытаетесь, возможно, и есть разные методы для достижения этого. Лучший подход будет зависеть от того, как вы вызываете действия вашего контроллера. Используете ли вы обычные гиперссылки, отправляете стандарт <form>
или используете AJAX. Поэтому, если вы используете стандартные ссылки действий, вы можете добавить некоторый JavaScript, который привязывается к событию onclick каждой ссылки и добавляет выбранное значение группы. Пример:
$(function() {
$('a').click(function() {
// everytime a link is clicked
// add the value of the selected group to the url
var selectedGroup = $('#IdOfYourDdl').val();
if (this.href.indexOf('?') > 0) {
window.location = this.href + '&selectedGroup=' + selectedGroup;
} else {
window.location = this.href + '?selectedGroup=' + selectedGroup;
}
// cancel the default action as it doesn't contain the selectedGroup
// parameter in the request
return false;
});
});
и в вашем действии контроллера вы можете иметь этот дополнительный параметр:
public ActionResult Foo(string selectedGroup)
{
...
}
Другой пример: если вы используете AJAX, вы можете установить данные по умолчанию на главной странице, которые будут гарантировать, что значение раскрывающегося списка будет отправляться вместе с каждым выполняемым вами запросом AJAX:
$.ajaxSetup({
data: { selectedGroup: $('#IdOfYourDdl').val() }
});
Теперь, когда вы отправляете запрос AJAX на ваш сервер:
$.get('/foo', { someParam: 'someValue' }, function(result) {
});
будет отправлен следующий запрос: /foo?someParam=someValue&selectedGroup=123
, чтобы вы могли получить значение выбранной группы обратно в действии контроллера.