如何获得HTML DropDownListFor回发?

who*_*itz 4 asp.net-mvc

我正在构建一个自定义分页机制,我有一个用于更改页面大小的下拉列表.页面大小在我的viewmodel中表示.显然,我可以更改值并再次运行搜索以获得适当的结果.

但有没有办法在选定的值更改时使DropDownListFor回发?

Jon*_*s T 13

您可以使用HtmlATtributes传递"onchange();" 试试这个.

<%: Html.DropDownListFor(model => model.ProductName, listobj,
                               new { onchange = 'submit()'; }) %>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 帮助集成解决方案的+1.正是我在寻找的东西.在带有双引号且没有分号的MVC中,语法效果更好:`new {onchange ="submit()"}` (5认同)

dan*_*wig 7

我实际上写了一个小javascript来启动这个行为:

$(document).ready(function () {
    $('form').find('select.auto-post').change(function () {
        $(this).parents('form').submit();
    });
});
Run Code Online (Sandbox Code Playgroud)

有趣的巧合,我现在正在做同样的事情.但是,我建议您不要将POST HTTP方法用于任何类型的分页参数.请改用GET.这使您的用户更容易导航,并且搜索引擎可以更轻松地为您的内容的所有页面编制索引.

更新:

要使上述jquery正常工作,您可以像下面这样呈现您的下拉列表:

Html.DropDownListFor(expression, items, new { @class = "auto-post" })
Run Code Online (Sandbox Code Playgroud)