每次用户更改选择时调用控制器方法

时间:2011-12-06 21:50:11

标签: asp.net-mvc-3

我有以下代码

@Html.DropDownList("optionsforuser", new SelectList(new[] { "Option1", "Option2" }), "Select")

现在我想从控制器调用一个方法来传递用户选择的任何选项。有什么想法可以做到吗?

2 个答案:

答案 0 :(得分:2)

由于MVC 3附带jQuery,因为它是首选的javascript库,你可以在整篇文章中执行以下操作:

$('optionsforuser').on('change', function() {
  $(this).closest('form').submit();
});

或者如果您希望异步:

$('optionsforuser').on('change', function() {
  var form = $(this).closest('form');
  $.post('urihere', form.serialize());
});

<强>更新

或者在完成时与回调异步:

Or if you wish to go asynchronous:

$('optionsforuser').on('change', function() {
  var form = $(this).closest('form');
  $.ajax({
    type: 'POST',
    url: 'urlHere',
    data: form.serialize(),
    complete: function(jqXHR, textStatus) {
      // Your callback code here
    }
  });
});

答案 1 :(得分:1)

使用jquery附加一个事件处理程序,该jquery在更改时执行ajax调用。

$("#optionsforuser").bind("change", function() { 
        // call you controller with jquery ajax.
        $(this).val() // this is the selected value
    });

查看this