2009-02-25 62 views
1

我有一个关于我的MVC View页面。当选定的索引更改时,我使用JQuery过滤网格。post <Asp:DropDownList> value with action link(asp.net MVC JQuery)

在页面底部我有一个操作链接。我想将此值发布到操作链接指向的控制器。

问题是,显然盒子的价值可以改变。

我该如何使用动作链接发布动态更改的数据?

回答

1

我想我会做的是使用表单而不是动作链接。然后,您的jQuery将更新表单中与查询参数对应的一些隐藏字段。你的“链接”(可能是一个按钮)会有一个提交表单的onclick处理程序。如果您关心网址 - 我可以看到您的位置 - 只需将您的控制器操作重定向到正确的路由参数即可。

或者,您可以在选择更改时构建并替换ActionLink上的href。这将涉及维护视图中的代码,以了解路由的构建方式。

注意:下面的例子可能会更好地使用包裹在下拉本身上的表单,并且简单地对选择进行更改,但该模式是我感兴趣的描述。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#formLink').click(function() { 
      $(this).parent('form').submit(); 
      return false; 
     }); 
     $('#PageSizeMenu').change(function() { 
      $('#PageSize').val($(this).val()); 
     }) 
    }); 
</script> 

<%= Html.DropDownList("PageSizeMenu", ...) %> 
<% using (Html.BeginForm("List")) { %> 
    <a id="formLink" href="some-reasonable-link-for-non-javascript">Go</a> 
    <%= Html.Hidden("PageSize") %> 
<% } %>