ASP.NET MVC保留了回发后下拉列表的值

时间:2012-12-14 17:46:42

标签: jquery asp.net-mvc

我是ASP.NET MVC的新手。我在视图上显示记录列表。并且还有一个下拉列表,用于控制页面上显示的记录数量,例如10,20和50。

为了实现这一点,我使用jquery change事件触发我的控制器操作以更改下拉列表。以下是我的java脚本代码: -

$('select[name="pagingCount"]').on('change', function (ev) {
            ev.preventDefault();
            var pagingCount = $('select[name="pagingCount"]').val();
            var url = '@Url.Action("Action","Controller")?pagingCount=' + pagingCount;
            window.location = url;
        });

工作正常。但我希望在页面重新加载后保持选定的值。我不知道该怎么做?由于下拉列表不属于任何模型属性。 任何帮助表示赞赏。谢谢

2 个答案:

答案 0 :(得分:3)

您应该可以根据网址中的pagingCount参数设置下拉列表的值

function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
$(function(){
  $('select[name="pagingCount"]').val(getParameterByName("pagingCount"));
}

答案 1 :(得分:1)

您可能已经在操作方法中使用了pagingCount参数。

您现在需要做的就是将该值传递给您View(最好通过在ViewModel中设置属性)并让视图在下拉列表中设置所选值。